001/*
002 * This file is generated by jOOQ.
003 */
004package com.echothree.model.jooq.server.tables.associate;
005
006
007import com.echothree.model.data.associate.common.pk.AssociateProgramDetailPK;
008import com.echothree.model.data.associate.common.pk.AssociateProgramPK;
009import com.echothree.model.data.sequence.common.pk.SequencePK;
010import com.echothree.model.jooq.server.KeyRegistry;
011import com.echothree.model.jooq.server.tables.associate.AssociatePrograms.AssociateProgramsPath;
012import com.echothree.model.jooq.server.tables.sequence.Sequences.SequencesPath;
013
014import java.util.Arrays;
015import java.util.Collection;
016import java.util.List;
017
018import org.jooq.Condition;
019import org.jooq.Converter;
020import org.jooq.Field;
021import org.jooq.ForeignKey;
022import org.jooq.InverseForeignKey;
023import org.jooq.Name;
024import org.jooq.Path;
025import org.jooq.PlainSQL;
026import org.jooq.QueryPart;
027import org.jooq.Record;
028import org.jooq.SQL;
029import org.jooq.Stringly;
030import org.jooq.Table;
031import org.jooq.TableField;
032import org.jooq.TableLike;
033import org.jooq.TableOptions;
034import org.jooq.UniqueKey;
035import org.jooq.impl.DSL;
036import org.jooq.impl.Internal;
037import org.jooq.impl.SQLDataType;
038import org.jooq.impl.TableImpl;
039
040
041/**
042 * This class is generated by jOOQ.
043 */
044@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
045public class AssociateProgramDetails extends TableImpl<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> {
046
047    private static final long serialVersionUID = 1L;
048
049    /**
050     * The reference instance of <code>associateprogramdetails</code>
051     */
052    public static final AssociateProgramDetails AssociateProgramDetails = new AssociateProgramDetails();
053
054    /**
055     * The class holding records for this type
056     */
057    @Override
058    public Class<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> getRecordType() {
059        return com.echothree.model.jooq.server.records.associate.AssociateProgramDetails.class;
060    }
061
062    /**
063     * The column
064     * <code>associateprogramdetails.ascprgmdt_associateprogramdetailid</code>.
065     */
066    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, AssociateProgramDetailPK> ASSOCIATE_PROGRAM_DETAIL = createField(DSL.name("ascprgmdt_associateprogramdetailid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, AssociateProgramDetailPK.class, id -> new com.echothree.model.data.associate.common.pk.AssociateProgramDetailPK(id), primaryKey -> primaryKey.getEntityId()));
067
068    /**
069     * The column
070     * <code>associateprogramdetails.ascprgmdt_ascprgm_associateprogramid</code>.
071     */
072    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, AssociateProgramPK> ASSOCIATE_PROGRAM = createField(DSL.name("ascprgmdt_ascprgm_associateprogramid"), SQLDataType.BIGINT, this, "", Converter.ofNullable(Long.class, AssociateProgramPK.class, id -> new com.echothree.model.data.associate.common.pk.AssociateProgramPK(id), primaryKey -> primaryKey.getEntityId()));
073
074    /**
075     * The column
076     * <code>associateprogramdetails.ascprgmdt_associateprogramname</code>.
077     */
078    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, String> ASSOCIATE_PROGRAM_NAME = createField(DSL.name("ascprgmdt_associateprogramname"), SQLDataType.VARCHAR(40).nullable(false), this, "");
079
080    /**
081     * The column
082     * <code>associateprogramdetails.ascprgmdt_associatesequenceid</code>.
083     */
084    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, SequencePK> ASSOCIATE_SEQUENCE = createField(DSL.name("ascprgmdt_associatesequenceid"), SQLDataType.BIGINT, this, "", Converter.ofNullable(Long.class, SequencePK.class, id -> new com.echothree.model.data.sequence.common.pk.SequencePK(id), primaryKey -> primaryKey.getEntityId()));
085
086    /**
087     * The column
088     * <code>associateprogramdetails.ascprgmdt_associatepartycontactmechanismsequenceid</code>.
089     */
090    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, SequencePK> ASSOCIATE_PARTY_CONTACT_MECHANISM_SEQUENCE = createField(DSL.name("ascprgmdt_associatepartycontactmechanismsequenceid"), SQLDataType.BIGINT, this, "", Converter.ofNullable(Long.class, SequencePK.class, id -> new com.echothree.model.data.sequence.common.pk.SequencePK(id), primaryKey -> primaryKey.getEntityId()));
091
092    /**
093     * The column
094     * <code>associateprogramdetails.ascprgmdt_associatereferralsequenceid</code>.
095     */
096    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, SequencePK> ASSOCIATE_REFERRAL_SEQUENCE = createField(DSL.name("ascprgmdt_associatereferralsequenceid"), SQLDataType.BIGINT, this, "", Converter.ofNullable(Long.class, SequencePK.class, id -> new com.echothree.model.data.sequence.common.pk.SequencePK(id), primaryKey -> primaryKey.getEntityId()));
097
098    /**
099     * The column
100     * <code>associateprogramdetails.ascprgmdt_itemindirectsalepercent</code>.
101     */
102    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, Integer> ITEM_INDIRECT_SALE_PERCENT = createField(DSL.name("ascprgmdt_itemindirectsalepercent"), SQLDataType.INTEGER, this, "");
103
104    /**
105     * The column
106     * <code>associateprogramdetails.ascprgmdt_itemdirectsalepercent</code>.
107     */
108    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, Integer> ITEM_DIRECT_SALE_PERCENT = createField(DSL.name("ascprgmdt_itemdirectsalepercent"), SQLDataType.INTEGER, this, "");
109
110    /**
111     * The column <code>associateprogramdetails.ascprgmdt_isdefault</code>.
112     */
113    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, Boolean> IS_DEFAULT = createField(DSL.name("ascprgmdt_isdefault"), SQLDataType.BIT.nullable(false), this, "");
114
115    /**
116     * The column <code>associateprogramdetails.ascprgmdt_sortorder</code>.
117     */
118    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, Integer> SORT_ORDER = createField(DSL.name("ascprgmdt_sortorder"), SQLDataType.INTEGER.nullable(false), this, "");
119
120    /**
121     * The column <code>associateprogramdetails.ascprgmdt_fromtime</code>.
122     */
123    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, Long> FROM_TIME = createField(DSL.name("ascprgmdt_fromtime"), SQLDataType.BIGINT.nullable(false), this, "");
124
125    /**
126     * The column <code>associateprogramdetails.ascprgmdt_thrutime</code>.
127     */
128    public final TableField<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, Long> THRU_TIME = createField(DSL.name("ascprgmdt_thrutime"), SQLDataType.BIGINT.nullable(false), this, "");
129
130    private AssociateProgramDetails(Name alias, Table<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> aliased) {
131        this(alias, aliased, (Field<?>[]) null, null);
132    }
133
134    private AssociateProgramDetails(Name alias, Table<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> aliased, Field<?>[] parameters, Condition where) {
135        super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where);
136    }
137
138    /**
139     * Create an aliased <code>associateprogramdetails</code> table reference
140     */
141    public AssociateProgramDetails(String alias) {
142        this(DSL.name(alias), AssociateProgramDetails);
143    }
144
145    /**
146     * Create an aliased <code>associateprogramdetails</code> table reference
147     */
148    public AssociateProgramDetails(Name alias) {
149        this(alias, AssociateProgramDetails);
150    }
151
152    /**
153     * Create a <code>associateprogramdetails</code> table reference
154     */
155    public AssociateProgramDetails() {
156        this(DSL.name("associateprogramdetails"), null);
157    }
158
159    public <O extends Record> AssociateProgramDetails(Table<O> path, ForeignKey<O, com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> childPath, InverseForeignKey<O, com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> parentPath) {
160        super(path, childPath, parentPath, AssociateProgramDetails);
161    }
162
163    /**
164     * A subtype implementing {@link Path} for simplified path-based joins.
165     */
166    public static class AssociateProgramDetailsPath extends AssociateProgramDetails implements Path<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> {
167
168        private static final long serialVersionUID = 1L;
169        public <O extends Record> AssociateProgramDetailsPath(Table<O> path, ForeignKey<O, com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> childPath, InverseForeignKey<O, com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> parentPath) {
170            super(path, childPath, parentPath);
171        }
172        private AssociateProgramDetailsPath(Name alias, Table<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> aliased) {
173            super(alias, aliased);
174        }
175
176        @Override
177        public AssociateProgramDetailsPath as(String alias) {
178            return new AssociateProgramDetailsPath(DSL.name(alias), this);
179        }
180
181        @Override
182        public AssociateProgramDetailsPath as(Name alias) {
183            return new AssociateProgramDetailsPath(alias, this);
184        }
185
186        @Override
187        public AssociateProgramDetailsPath as(Table<?> alias) {
188            return new AssociateProgramDetailsPath(alias.getQualifiedName(), this);
189        }
190    }
191
192    @Override
193    public UniqueKey<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails> getPrimaryKey() {
194        return KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_PK;
195    }
196
197    @Override
198    public List<UniqueKey<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails>> getUniqueKeys() {
199        return Arrays.asList(KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_PROGRAM_AND_THRU_TIME_UK, KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_PROGRAM_NAME_AND_THRU_TIME_UK);
200    }
201
202    @Override
203    public List<ForeignKey<com.echothree.model.jooq.server.records.associate.AssociateProgramDetails, ?>> getReferences() {
204        return Arrays.asList(KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_PROGRAM_FK, KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_PARTY_CONTACT_MECHANISM_SEQUENCE_FK, KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_REFERRAL_SEQUENCE_FK, KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_SEQUENCE_FK);
205    }
206
207    private transient AssociateProgramsPath _ascprgmdt_ascprgm_associateprogramid_fk;
208
209    /**
210     * Get the implicit join path to the <code>associateprograms</code> table.
211     */
212    public AssociateProgramsPath ascprgmdt_ascprgm_associateprogramid_fk() {
213        if (_ascprgmdt_ascprgm_associateprogramid_fk == null)
214            _ascprgmdt_ascprgm_associateprogramid_fk = new AssociateProgramsPath(this, KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_PROGRAM_FK, null);
215
216        return _ascprgmdt_ascprgm_associateprogramid_fk;
217    }
218
219    private transient SequencesPath _ascprgmdt_associatepartycontactmechanismsequenceid_fk;
220
221    /**
222     * Get the implicit join path to the <code>sequences</code> table, via the
223     * <code>ascprgmdt_associatepartycontactmechanismsequenceid_fk</code> key.
224     */
225    public SequencesPath ascprgmdt_associatepartycontactmechanismsequenceid_fk() {
226        if (_ascprgmdt_associatepartycontactmechanismsequenceid_fk == null)
227            _ascprgmdt_associatepartycontactmechanismsequenceid_fk = new SequencesPath(this, KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_PARTY_CONTACT_MECHANISM_SEQUENCE_FK, null);
228
229        return _ascprgmdt_associatepartycontactmechanismsequenceid_fk;
230    }
231
232    private transient SequencesPath _ascprgmdt_associatereferralsequenceid_fk;
233
234    /**
235     * Get the implicit join path to the <code>sequences</code> table, via the
236     * <code>ascprgmdt_associatereferralsequenceid_fk</code> key.
237     */
238    public SequencesPath ascprgmdt_associatereferralsequenceid_fk() {
239        if (_ascprgmdt_associatereferralsequenceid_fk == null)
240            _ascprgmdt_associatereferralsequenceid_fk = new SequencesPath(this, KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_REFERRAL_SEQUENCE_FK, null);
241
242        return _ascprgmdt_associatereferralsequenceid_fk;
243    }
244
245    private transient SequencesPath _ascprgmdt_associatesequenceid_fk;
246
247    /**
248     * Get the implicit join path to the <code>sequences</code> table, via the
249     * <code>ascprgmdt_associatesequenceid_fk</code> key.
250     */
251    public SequencesPath ascprgmdt_associatesequenceid_fk() {
252        if (_ascprgmdt_associatesequenceid_fk == null)
253            _ascprgmdt_associatesequenceid_fk = new SequencesPath(this, KeyRegistry.ASSOCIATE_PROGRAM_DETAILS_ASSOCIATE_SEQUENCE_FK, null);
254
255        return _ascprgmdt_associatesequenceid_fk;
256    }
257
258    @Override
259    public AssociateProgramDetails as(String alias) {
260        return new AssociateProgramDetails(DSL.name(alias), this);
261    }
262
263    @Override
264    public AssociateProgramDetails as(Name alias) {
265        return new AssociateProgramDetails(alias, this);
266    }
267
268    @Override
269    public AssociateProgramDetails as(Table<?> alias) {
270        return new AssociateProgramDetails(alias.getQualifiedName(), this);
271    }
272
273    /**
274     * Rename this table
275     */
276    @Override
277    public AssociateProgramDetails rename(String name) {
278        return new AssociateProgramDetails(DSL.name(name), null);
279    }
280
281    /**
282     * Rename this table
283     */
284    @Override
285    public AssociateProgramDetails rename(Name name) {
286        return new AssociateProgramDetails(name, null);
287    }
288
289    /**
290     * Rename this table
291     */
292    @Override
293    public AssociateProgramDetails rename(Table<?> name) {
294        return new AssociateProgramDetails(name.getQualifiedName(), null);
295    }
296
297    /**
298     * Create an inline derived table from this table
299     */
300    @Override
301    public AssociateProgramDetails where(Condition condition) {
302        return new AssociateProgramDetails(getQualifiedName(), aliased() ? this : null, null, Internal.condition(this, condition));
303    }
304
305    /**
306     * Create an inline derived table from this table
307     */
308    @Override
309    public AssociateProgramDetails where(Collection<? extends Condition> conditions) {
310        return where(DSL.and(conditions));
311    }
312
313    /**
314     * Create an inline derived table from this table
315     */
316    @Override
317    public AssociateProgramDetails where(Condition... conditions) {
318        return where(DSL.and(conditions));
319    }
320
321    /**
322     * Create an inline derived table from this table
323     */
324    @Override
325    public AssociateProgramDetails where(Field<Boolean> condition) {
326        return where(DSL.condition(condition));
327    }
328
329    /**
330     * Create an inline derived table from this table
331     */
332    @Override
333    @PlainSQL
334    public AssociateProgramDetails where(SQL condition) {
335        return where(DSL.condition(condition));
336    }
337
338    /**
339     * Create an inline derived table from this table
340     */
341    @Override
342    @PlainSQL
343    public AssociateProgramDetails where(@Stringly.SQL String condition) {
344        return where(DSL.condition(condition));
345    }
346
347    /**
348     * Create an inline derived table from this table
349     */
350    @Override
351    @PlainSQL
352    public AssociateProgramDetails where(@Stringly.SQL String condition, Object... binds) {
353        return where(DSL.condition(condition, binds));
354    }
355
356    /**
357     * Create an inline derived table from this table
358     */
359    @Override
360    @PlainSQL
361    public AssociateProgramDetails where(@Stringly.SQL String condition, QueryPart... parts) {
362        return where(DSL.condition(condition, parts));
363    }
364
365    /**
366     * Create an inline derived table from this table
367     */
368    @Override
369    public AssociateProgramDetails whereExists(TableLike<?> select) {
370        return where(DSL.exists(select));
371    }
372
373    /**
374     * Create an inline derived table from this table
375     */
376    @Override
377    public AssociateProgramDetails whereNotExists(TableLike<?> select) {
378        return where(DSL.notExists(select));
379    }
380}