diff --git a/build.gradle b/build.gradle index ceacc0b..ee84649 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ apply plugin: 'maven-publish' apply plugin: 'eclipse' group = 'de.jottyfan' -version = '20260114' +version = '20260119' def artifactId = 'timetrackjooq' def versionNumber = version diff --git a/src/main/java/de/jottyfan/timetrack/db/project/Project.java b/src/main/java/de/jottyfan/timetrack/db/project/Project.java index 27fd5ff..63ffd63 100644 --- a/src/main/java/de/jottyfan/timetrack/db/project/Project.java +++ b/src/main/java/de/jottyfan/timetrack/db/project/Project.java @@ -13,6 +13,9 @@ import de.jottyfan.timetrack.db.project.tables.TProject; import de.jottyfan.timetrack.db.project.tables.TWorkpackage; import de.jottyfan.timetrack.db.project.tables.TWorkpackageApp; import de.jottyfan.timetrack.db.project.tables.VBundleApps; +import de.jottyfan.timetrack.db.project.tables.VExcelApp; +import de.jottyfan.timetrack.db.project.tables.VExcelWorkpackage; +import de.jottyfan.timetrack.db.project.tables.VExcelWorkpackageApp; import java.util.Arrays; import java.util.List; @@ -75,6 +78,21 @@ public class Project extends SchemaImpl { */ public final VBundleApps V_BUNDLE_APPS = VBundleApps.V_BUNDLE_APPS; + /** + * The table project.v_excel_app. + */ + public final VExcelApp V_EXCEL_APP = VExcelApp.V_EXCEL_APP; + + /** + * The table project.v_excel_workpackage. + */ + public final VExcelWorkpackage V_EXCEL_WORKPACKAGE = VExcelWorkpackage.V_EXCEL_WORKPACKAGE; + + /** + * The table project.v_excel_workpackage_app. + */ + public final VExcelWorkpackageApp V_EXCEL_WORKPACKAGE_APP = VExcelWorkpackageApp.V_EXCEL_WORKPACKAGE_APP; + /** * No further instances allowed */ @@ -98,7 +116,10 @@ public class Project extends SchemaImpl { TProject.T_PROJECT, TWorkpackage.T_WORKPACKAGE, TWorkpackageApp.T_WORKPACKAGE_APP, - VBundleApps.V_BUNDLE_APPS + VBundleApps.V_BUNDLE_APPS, + VExcelApp.V_EXCEL_APP, + VExcelWorkpackage.V_EXCEL_WORKPACKAGE, + VExcelWorkpackageApp.V_EXCEL_WORKPACKAGE_APP ); } } diff --git a/src/main/java/de/jottyfan/timetrack/db/project/Tables.java b/src/main/java/de/jottyfan/timetrack/db/project/Tables.java index 6cc628a..6ab6e2c 100644 --- a/src/main/java/de/jottyfan/timetrack/db/project/Tables.java +++ b/src/main/java/de/jottyfan/timetrack/db/project/Tables.java @@ -12,6 +12,9 @@ import de.jottyfan.timetrack.db.project.tables.TProject; import de.jottyfan.timetrack.db.project.tables.TWorkpackage; import de.jottyfan.timetrack.db.project.tables.TWorkpackageApp; import de.jottyfan.timetrack.db.project.tables.VBundleApps; +import de.jottyfan.timetrack.db.project.tables.VExcelApp; +import de.jottyfan.timetrack.db.project.tables.VExcelWorkpackage; +import de.jottyfan.timetrack.db.project.tables.VExcelWorkpackageApp; /** @@ -59,4 +62,19 @@ public class Tables { * The table project.v_bundle_apps. */ public static final VBundleApps V_BUNDLE_APPS = VBundleApps.V_BUNDLE_APPS; + + /** + * The table project.v_excel_app. + */ + public static final VExcelApp V_EXCEL_APP = VExcelApp.V_EXCEL_APP; + + /** + * The table project.v_excel_workpackage. + */ + public static final VExcelWorkpackage V_EXCEL_WORKPACKAGE = VExcelWorkpackage.V_EXCEL_WORKPACKAGE; + + /** + * The table project.v_excel_workpackage_app. + */ + public static final VExcelWorkpackageApp V_EXCEL_WORKPACKAGE_APP = VExcelWorkpackageApp.V_EXCEL_WORKPACKAGE_APP; } diff --git a/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelApp.java b/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelApp.java new file mode 100644 index 0000000..cb51708 --- /dev/null +++ b/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelApp.java @@ -0,0 +1,264 @@ +/* + * This file is generated by jOOQ. + */ +package de.jottyfan.timetrack.db.project.tables; + + +import de.jottyfan.timetrack.db.project.Project; +import de.jottyfan.timetrack.db.project.tables.records.VExcelAppRecord; + +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" }) +public class VExcelApp extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of project.v_excel_app + */ + public static final VExcelApp V_EXCEL_APP = new VExcelApp(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return VExcelAppRecord.class; + } + + /** + * The column project.v_excel_app.app_id. + */ + public final TableField APP_ID = createField(DSL.name("app_id"), SQLDataType.INTEGER, this, ""); + + /** + * The column project.v_excel_app.bundle_name. + */ + public final TableField BUNDLE_NAME = createField(DSL.name("bundle_name"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_app.bundle_description. + */ + public final TableField BUNDLE_DESCRIPTION = createField(DSL.name("bundle_description"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_app.basic_functionality. + */ + public final TableField BASIC_FUNCTIONALITY = createField(DSL.name("basic_functionality"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_app.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_app.description. + */ + public final TableField DESCRIPTION = createField(DSL.name("description"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_app.replaced_by_app_with_id. + */ + public final TableField REPLACED_BY_APP_WITH_ID = createField(DSL.name("replaced_by_app_with_id"), SQLDataType.INTEGER, this, ""); + + /** + * The column project.v_excel_app.repository_url. + */ + public final TableField REPOSITORY_URL = createField(DSL.name("repository_url"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_app.orphan. + */ + public final TableField ORPHAN = createField(DSL.name("orphan"), SQLDataType.BOOLEAN, this, ""); + + private VExcelApp(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private VExcelApp(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.view(""" + create view "v_excel_app" as SELECT a.pk_app AS app_id, + b.name AS bundle_name, + b.description AS bundle_description, + a.basic_functionality, + a.name, + a.description, + a.fk_replaced_by_app AS replaced_by_app_with_id, + a.repository_url, + (wa.pk_workpackage_app IS NULL) AS orphan + FROM ((project.t_app a + LEFT JOIN project.t_bundle b ON ((b.pk_bundle = a.fk_bundle))) + LEFT JOIN project.t_workpackage_app wa ON ((wa.fk_app = a.pk_app))); + """), where); + } + + /** + * Create an aliased project.v_excel_app table reference + */ + public VExcelApp(String alias) { + this(DSL.name(alias), V_EXCEL_APP); + } + + /** + * Create an aliased project.v_excel_app table reference + */ + public VExcelApp(Name alias) { + this(alias, V_EXCEL_APP); + } + + /** + * Create a project.v_excel_app table reference + */ + public VExcelApp() { + this(DSL.name("v_excel_app"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Project.PROJECT; + } + + @Override + public VExcelApp as(String alias) { + return new VExcelApp(DSL.name(alias), this); + } + + @Override + public VExcelApp as(Name alias) { + return new VExcelApp(alias, this); + } + + @Override + public VExcelApp as(Table alias) { + return new VExcelApp(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public VExcelApp rename(String name) { + return new VExcelApp(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public VExcelApp rename(Name name) { + return new VExcelApp(name, null); + } + + /** + * Rename this table + */ + @Override + public VExcelApp rename(Table name) { + return new VExcelApp(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelApp where(Condition condition) { + return new VExcelApp(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelApp where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelApp where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelApp where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelApp where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelApp where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelApp where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelApp where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelApp whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelApp whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelWorkpackage.java b/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelWorkpackage.java new file mode 100644 index 0000000..e2cc0e0 --- /dev/null +++ b/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelWorkpackage.java @@ -0,0 +1,280 @@ +/* + * This file is generated by jOOQ. + */ +package de.jottyfan.timetrack.db.project.tables; + + +import de.jottyfan.timetrack.db.project.Project; +import de.jottyfan.timetrack.db.project.tables.records.VExcelWorkpackageRecord; + +import java.time.LocalDate; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" }) +public class VExcelWorkpackage extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of project.v_excel_workpackage + */ + public static final VExcelWorkpackage V_EXCEL_WORKPACKAGE = new VExcelWorkpackage(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return VExcelWorkpackageRecord.class; + } + + /** + * The column project.v_excel_workpackage.project_id. + */ + public final TableField PROJECT_ID = createField(DSL.name("project_id"), SQLDataType.INTEGER, this, ""); + + /** + * The column project.v_excel_workpackage.project_name. + */ + public final TableField PROJECT_NAME = createField(DSL.name("project_name"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage.project_description. + */ + public final TableField PROJECT_DESCRIPTION = createField(DSL.name("project_description"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage.funder_name. + */ + public final TableField FUNDER_NAME = createField(DSL.name("funder_name"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage.funder_description. + */ + public final TableField FUNDER_DESCRIPTION = createField(DSL.name("funder_description"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage.workpackage_id. + */ + public final TableField WORKPACKAGE_ID = createField(DSL.name("workpackage_id"), SQLDataType.INTEGER, this, ""); + + /** + * The column project.v_excel_workpackage.workpackage_name. + */ + public final TableField WORKPACKAGE_NAME = createField(DSL.name("workpackage_name"), SQLDataType.CLOB, this, ""); + + /** + * The column + * project.v_excel_workpackage.workpackage_description. + */ + public final TableField WORKPACKAGE_DESCRIPTION = createField(DSL.name("workpackage_description"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage.contract_url. + */ + public final TableField CONTRACT_URL = createField(DSL.name("contract_url"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage.milestone_url. + */ + public final TableField MILESTONE_URL = createField(DSL.name("milestone_url"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage.planned_duedate. + */ + public final TableField PLANNED_DUEDATE = createField(DSL.name("planned_duedate"), SQLDataType.LOCALDATE, this, ""); + + private VExcelWorkpackage(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private VExcelWorkpackage(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.view(""" + create view "v_excel_workpackage" as SELECT p.pk_project AS project_id, + p.name AS project_name, + p.description AS project_description, + f.name AS funder_name, + f.description AS funder_description, + w.pk_workpackage AS workpackage_id, + w.name AS workpackage_name, + w.description AS workpackage_description, + w.contract_url, + w.milestone_url, + w.planned_duedate + FROM ((project.t_project p + LEFT JOIN project.t_funder f ON ((f.pk_funder = p.fk_funder))) + LEFT JOIN project.t_workpackage w ON ((w.fk_project = p.pk_project))); + """), where); + } + + /** + * Create an aliased project.v_excel_workpackage table + * reference + */ + public VExcelWorkpackage(String alias) { + this(DSL.name(alias), V_EXCEL_WORKPACKAGE); + } + + /** + * Create an aliased project.v_excel_workpackage table + * reference + */ + public VExcelWorkpackage(Name alias) { + this(alias, V_EXCEL_WORKPACKAGE); + } + + /** + * Create a project.v_excel_workpackage table reference + */ + public VExcelWorkpackage() { + this(DSL.name("v_excel_workpackage"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Project.PROJECT; + } + + @Override + public VExcelWorkpackage as(String alias) { + return new VExcelWorkpackage(DSL.name(alias), this); + } + + @Override + public VExcelWorkpackage as(Name alias) { + return new VExcelWorkpackage(alias, this); + } + + @Override + public VExcelWorkpackage as(Table alias) { + return new VExcelWorkpackage(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public VExcelWorkpackage rename(String name) { + return new VExcelWorkpackage(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public VExcelWorkpackage rename(Name name) { + return new VExcelWorkpackage(name, null); + } + + /** + * Rename this table + */ + @Override + public VExcelWorkpackage rename(Table name) { + return new VExcelWorkpackage(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackage where(Condition condition) { + return new VExcelWorkpackage(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackage where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackage where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackage where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelWorkpackage where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelWorkpackage where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelWorkpackage where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelWorkpackage where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackage whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackage whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelWorkpackageApp.java b/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelWorkpackageApp.java new file mode 100644 index 0000000..800d989 --- /dev/null +++ b/src/main/java/de/jottyfan/timetrack/db/project/tables/VExcelWorkpackageApp.java @@ -0,0 +1,243 @@ +/* + * This file is generated by jOOQ. + */ +package de.jottyfan.timetrack.db.project.tables; + + +import de.jottyfan.timetrack.db.project.Project; +import de.jottyfan.timetrack.db.project.tables.records.VExcelWorkpackageAppRecord; + +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" }) +public class VExcelWorkpackageApp extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of project.v_excel_workpackage_app + */ + public static final VExcelWorkpackageApp V_EXCEL_WORKPACKAGE_APP = new VExcelWorkpackageApp(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return VExcelWorkpackageAppRecord.class; + } + + /** + * The column + * project.v_excel_workpackage_app.workpackage_app_id. + */ + public final TableField WORKPACKAGE_APP_ID = createField(DSL.name("workpackage_app_id"), SQLDataType.INTEGER, this, ""); + + /** + * The column project.v_excel_workpackage_app.workpackage_name. + */ + public final TableField WORKPACKAGE_NAME = createField(DSL.name("workpackage_name"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage_app.app_name. + */ + public final TableField APP_NAME = createField(DSL.name("app_name"), SQLDataType.CLOB, this, ""); + + /** + * The column project.v_excel_workpackage_app.workpackage_id. + */ + public final TableField WORKPACKAGE_ID = createField(DSL.name("workpackage_id"), SQLDataType.INTEGER, this, ""); + + /** + * The column project.v_excel_workpackage_app.app_id. + */ + public final TableField APP_ID = createField(DSL.name("app_id"), SQLDataType.INTEGER, this, ""); + + private VExcelWorkpackageApp(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private VExcelWorkpackageApp(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.view(""" + create view "v_excel_workpackage_app" as SELECT wa.pk_workpackage_app AS workpackage_app_id, + w.name AS workpackage_name, + a.name AS app_name, + w.pk_workpackage AS workpackage_id, + a.pk_app AS app_id + FROM ((project.t_workpackage_app wa + LEFT JOIN project.t_workpackage w ON ((w.pk_workpackage = wa.fk_workpackage))) + LEFT JOIN project.t_app a ON ((a.pk_app = wa.fk_app))); + """), where); + } + + /** + * Create an aliased project.v_excel_workpackage_app table + * reference + */ + public VExcelWorkpackageApp(String alias) { + this(DSL.name(alias), V_EXCEL_WORKPACKAGE_APP); + } + + /** + * Create an aliased project.v_excel_workpackage_app table + * reference + */ + public VExcelWorkpackageApp(Name alias) { + this(alias, V_EXCEL_WORKPACKAGE_APP); + } + + /** + * Create a project.v_excel_workpackage_app table reference + */ + public VExcelWorkpackageApp() { + this(DSL.name("v_excel_workpackage_app"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Project.PROJECT; + } + + @Override + public VExcelWorkpackageApp as(String alias) { + return new VExcelWorkpackageApp(DSL.name(alias), this); + } + + @Override + public VExcelWorkpackageApp as(Name alias) { + return new VExcelWorkpackageApp(alias, this); + } + + @Override + public VExcelWorkpackageApp as(Table alias) { + return new VExcelWorkpackageApp(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public VExcelWorkpackageApp rename(String name) { + return new VExcelWorkpackageApp(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public VExcelWorkpackageApp rename(Name name) { + return new VExcelWorkpackageApp(name, null); + } + + /** + * Rename this table + */ + @Override + public VExcelWorkpackageApp rename(Table name) { + return new VExcelWorkpackageApp(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackageApp where(Condition condition) { + return new VExcelWorkpackageApp(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackageApp where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackageApp where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackageApp where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelWorkpackageApp where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelWorkpackageApp where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelWorkpackageApp where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public VExcelWorkpackageApp where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackageApp whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public VExcelWorkpackageApp whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelAppRecord.java b/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelAppRecord.java new file mode 100644 index 0000000..81c0c41 --- /dev/null +++ b/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelAppRecord.java @@ -0,0 +1,174 @@ +/* + * This file is generated by jOOQ. + */ +package de.jottyfan.timetrack.db.project.tables.records; + + +import de.jottyfan.timetrack.db.project.tables.VExcelApp; + +import org.jooq.impl.TableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" }) +public class VExcelAppRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for project.v_excel_app.app_id. + */ + public void setAppId(Integer value) { + set(0, value); + } + + /** + * Getter for project.v_excel_app.app_id. + */ + public Integer getAppId() { + return (Integer) get(0); + } + + /** + * Setter for project.v_excel_app.bundle_name. + */ + public void setBundleName(String value) { + set(1, value); + } + + /** + * Getter for project.v_excel_app.bundle_name. + */ + public String getBundleName() { + return (String) get(1); + } + + /** + * Setter for project.v_excel_app.bundle_description. + */ + public void setBundleDescription(String value) { + set(2, value); + } + + /** + * Getter for project.v_excel_app.bundle_description. + */ + public String getBundleDescription() { + return (String) get(2); + } + + /** + * Setter for project.v_excel_app.basic_functionality. + */ + public void setBasicFunctionality(String value) { + set(3, value); + } + + /** + * Getter for project.v_excel_app.basic_functionality. + */ + public String getBasicFunctionality() { + return (String) get(3); + } + + /** + * Setter for project.v_excel_app.name. + */ + public void setName(String value) { + set(4, value); + } + + /** + * Getter for project.v_excel_app.name. + */ + public String getName() { + return (String) get(4); + } + + /** + * Setter for project.v_excel_app.description. + */ + public void setDescription(String value) { + set(5, value); + } + + /** + * Getter for project.v_excel_app.description. + */ + public String getDescription() { + return (String) get(5); + } + + /** + * Setter for project.v_excel_app.replaced_by_app_with_id. + */ + public void setReplacedByAppWithId(Integer value) { + set(6, value); + } + + /** + * Getter for project.v_excel_app.replaced_by_app_with_id. + */ + public Integer getReplacedByAppWithId() { + return (Integer) get(6); + } + + /** + * Setter for project.v_excel_app.repository_url. + */ + public void setRepositoryUrl(String value) { + set(7, value); + } + + /** + * Getter for project.v_excel_app.repository_url. + */ + public String getRepositoryUrl() { + return (String) get(7); + } + + /** + * Setter for project.v_excel_app.orphan. + */ + public void setOrphan(Boolean value) { + set(8, value); + } + + /** + * Getter for project.v_excel_app.orphan. + */ + public Boolean getOrphan() { + return (Boolean) get(8); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached VExcelAppRecord + */ + public VExcelAppRecord() { + super(VExcelApp.V_EXCEL_APP); + } + + /** + * Create a detached, initialised VExcelAppRecord + */ + public VExcelAppRecord(Integer appId, String bundleName, String bundleDescription, String basicFunctionality, String name, String description, Integer replacedByAppWithId, String repositoryUrl, Boolean orphan) { + super(VExcelApp.V_EXCEL_APP); + + setAppId(appId); + setBundleName(bundleName); + setBundleDescription(bundleDescription); + setBasicFunctionality(basicFunctionality); + setName(name); + setDescription(description); + setReplacedByAppWithId(replacedByAppWithId); + setRepositoryUrl(repositoryUrl); + setOrphan(orphan); + resetChangedOnNotNull(); + } +} diff --git a/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelWorkpackageAppRecord.java b/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelWorkpackageAppRecord.java new file mode 100644 index 0000000..e7acc16 --- /dev/null +++ b/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelWorkpackageAppRecord.java @@ -0,0 +1,116 @@ +/* + * This file is generated by jOOQ. + */ +package de.jottyfan.timetrack.db.project.tables.records; + + +import de.jottyfan.timetrack.db.project.tables.VExcelWorkpackageApp; + +import org.jooq.impl.TableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" }) +public class VExcelWorkpackageAppRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * project.v_excel_workpackage_app.workpackage_app_id. + */ + public void setWorkpackageAppId(Integer value) { + set(0, value); + } + + /** + * Getter for + * project.v_excel_workpackage_app.workpackage_app_id. + */ + public Integer getWorkpackageAppId() { + return (Integer) get(0); + } + + /** + * Setter for project.v_excel_workpackage_app.workpackage_name. + */ + public void setWorkpackageName(String value) { + set(1, value); + } + + /** + * Getter for project.v_excel_workpackage_app.workpackage_name. + */ + public String getWorkpackageName() { + return (String) get(1); + } + + /** + * Setter for project.v_excel_workpackage_app.app_name. + */ + public void setAppName(String value) { + set(2, value); + } + + /** + * Getter for project.v_excel_workpackage_app.app_name. + */ + public String getAppName() { + return (String) get(2); + } + + /** + * Setter for project.v_excel_workpackage_app.workpackage_id. + */ + public void setWorkpackageId(Integer value) { + set(3, value); + } + + /** + * Getter for project.v_excel_workpackage_app.workpackage_id. + */ + public Integer getWorkpackageId() { + return (Integer) get(3); + } + + /** + * Setter for project.v_excel_workpackage_app.app_id. + */ + public void setAppId(Integer value) { + set(4, value); + } + + /** + * Getter for project.v_excel_workpackage_app.app_id. + */ + public Integer getAppId() { + return (Integer) get(4); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached VExcelWorkpackageAppRecord + */ + public VExcelWorkpackageAppRecord() { + super(VExcelWorkpackageApp.V_EXCEL_WORKPACKAGE_APP); + } + + /** + * Create a detached, initialised VExcelWorkpackageAppRecord + */ + public VExcelWorkpackageAppRecord(Integer workpackageAppId, String workpackageName, String appName, Integer workpackageId, Integer appId) { + super(VExcelWorkpackageApp.V_EXCEL_WORKPACKAGE_APP); + + setWorkpackageAppId(workpackageAppId); + setWorkpackageName(workpackageName); + setAppName(appName); + setWorkpackageId(workpackageId); + setAppId(appId); + resetChangedOnNotNull(); + } +} diff --git a/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelWorkpackageRecord.java b/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelWorkpackageRecord.java new file mode 100644 index 0000000..b01dbaf --- /dev/null +++ b/src/main/java/de/jottyfan/timetrack/db/project/tables/records/VExcelWorkpackageRecord.java @@ -0,0 +1,208 @@ +/* + * This file is generated by jOOQ. + */ +package de.jottyfan.timetrack.db.project.tables.records; + + +import de.jottyfan.timetrack.db.project.tables.VExcelWorkpackage; + +import java.time.LocalDate; + +import org.jooq.impl.TableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" }) +public class VExcelWorkpackageRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for project.v_excel_workpackage.project_id. + */ + public void setProjectId(Integer value) { + set(0, value); + } + + /** + * Getter for project.v_excel_workpackage.project_id. + */ + public Integer getProjectId() { + return (Integer) get(0); + } + + /** + * Setter for project.v_excel_workpackage.project_name. + */ + public void setProjectName(String value) { + set(1, value); + } + + /** + * Getter for project.v_excel_workpackage.project_name. + */ + public String getProjectName() { + return (String) get(1); + } + + /** + * Setter for project.v_excel_workpackage.project_description. + */ + public void setProjectDescription(String value) { + set(2, value); + } + + /** + * Getter for project.v_excel_workpackage.project_description. + */ + public String getProjectDescription() { + return (String) get(2); + } + + /** + * Setter for project.v_excel_workpackage.funder_name. + */ + public void setFunderName(String value) { + set(3, value); + } + + /** + * Getter for project.v_excel_workpackage.funder_name. + */ + public String getFunderName() { + return (String) get(3); + } + + /** + * Setter for project.v_excel_workpackage.funder_description. + */ + public void setFunderDescription(String value) { + set(4, value); + } + + /** + * Getter for project.v_excel_workpackage.funder_description. + */ + public String getFunderDescription() { + return (String) get(4); + } + + /** + * Setter for project.v_excel_workpackage.workpackage_id. + */ + public void setWorkpackageId(Integer value) { + set(5, value); + } + + /** + * Getter for project.v_excel_workpackage.workpackage_id. + */ + public Integer getWorkpackageId() { + return (Integer) get(5); + } + + /** + * Setter for project.v_excel_workpackage.workpackage_name. + */ + public void setWorkpackageName(String value) { + set(6, value); + } + + /** + * Getter for project.v_excel_workpackage.workpackage_name. + */ + public String getWorkpackageName() { + return (String) get(6); + } + + /** + * Setter for + * project.v_excel_workpackage.workpackage_description. + */ + public void setWorkpackageDescription(String value) { + set(7, value); + } + + /** + * Getter for + * project.v_excel_workpackage.workpackage_description. + */ + public String getWorkpackageDescription() { + return (String) get(7); + } + + /** + * Setter for project.v_excel_workpackage.contract_url. + */ + public void setContractUrl(String value) { + set(8, value); + } + + /** + * Getter for project.v_excel_workpackage.contract_url. + */ + public String getContractUrl() { + return (String) get(8); + } + + /** + * Setter for project.v_excel_workpackage.milestone_url. + */ + public void setMilestoneUrl(String value) { + set(9, value); + } + + /** + * Getter for project.v_excel_workpackage.milestone_url. + */ + public String getMilestoneUrl() { + return (String) get(9); + } + + /** + * Setter for project.v_excel_workpackage.planned_duedate. + */ + public void setPlannedDuedate(LocalDate value) { + set(10, value); + } + + /** + * Getter for project.v_excel_workpackage.planned_duedate. + */ + public LocalDate getPlannedDuedate() { + return (LocalDate) get(10); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached VExcelWorkpackageRecord + */ + public VExcelWorkpackageRecord() { + super(VExcelWorkpackage.V_EXCEL_WORKPACKAGE); + } + + /** + * Create a detached, initialised VExcelWorkpackageRecord + */ + public VExcelWorkpackageRecord(Integer projectId, String projectName, String projectDescription, String funderName, String funderDescription, Integer workpackageId, String workpackageName, String workpackageDescription, String contractUrl, String milestoneUrl, LocalDate plannedDuedate) { + super(VExcelWorkpackage.V_EXCEL_WORKPACKAGE); + + setProjectId(projectId); + setProjectName(projectName); + setProjectDescription(projectDescription); + setFunderName(funderName); + setFunderDescription(funderDescription); + setWorkpackageId(workpackageId); + setWorkpackageName(workpackageName); + setWorkpackageDescription(workpackageDescription); + setContractUrl(contractUrl); + setMilestoneUrl(milestoneUrl); + setPlannedDuedate(plannedDuedate); + resetChangedOnNotNull(); + } +} diff --git a/src/main/java/de/jottyfan/timetrack/db/public_/tables/VVersion.java b/src/main/java/de/jottyfan/timetrack/db/public_/tables/VVersion.java index 04d909e..af2d548 100644 --- a/src/main/java/de/jottyfan/timetrack/db/public_/tables/VVersion.java +++ b/src/main/java/de/jottyfan/timetrack/db/public_/tables/VVersion.java @@ -58,7 +58,7 @@ public class VVersion extends TableImpl { private VVersion(Name alias, Table aliased, Field[] parameters, Condition where) { super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.view(""" - create view "v_version" as SELECT 20260114 AS version; + create view "v_version" as SELECT 20260119 AS version; """), where); } diff --git a/src/main/resources/project.sql b/src/main/resources/project.sql index 53add99..583a9f2 100644 --- a/src/main/resources/project.sql +++ b/src/main/resources/project.sql @@ -67,6 +67,43 @@ from project.t_bundle b left join project.t_app a on a.fk_bundle = b.pk_bundle group by b.name; +create view project.v_excel_workpackage_app as +select wa.pk_workpackage_app as workpackage_app_id, w.name as workpackage_name, a.name as app_name, + w.pk_workpackage as workpackage_id, a.pk_app as app_id +from project.t_workpackage_app wa +left join project.t_workpackage w on w.pk_workpackage = wa.fk_workpackage +left join project.t_app a on a.pk_app = wa.fk_app; + +create view project.v_excel_app as +select a.pk_app as app_id, + b.name as bundle_name, + b.description as bundle_description, + a.basic_functionality, + a.name, + a.description, + a.fk_replaced_by_app as replaced_by_app_with_id, + a.repository_url, + wa.pk_workpackage_app is null as orphan +from project.t_app a +left join project.t_bundle b on b.pk_bundle = a.fk_bundle +left join project.t_workpackage_app wa on wa.fk_app = a.pk_app; + +create view project.v_excel_workpackage as +select p.pk_project as project_id, + p.name as project_name, + p.description as project_description, + f.name as funder_name, + f.description as funder_description, + w.pk_workpackage as workpackage_id, + w.name as workpackage_name, + w.description as workpackage_description, + w.contract_url, + w.milestone_url, + w.planned_duedate +from project.t_project p +left join project.t_funder f on f.pk_funder = p.fk_funder +left join project.t_workpackage w on w.fk_project = p.pk_project; + grant select,insert,update,delete on project.t_funder to timetrack; grant select,insert,update,delete on project.t_project to timetrack; grant select,insert,update,delete on project.t_workpackage to timetrack; @@ -76,3 +113,6 @@ grant select,insert,update,delete on project.t_workpackage_app to timetrack; grant select,insert,update,delete on project.t_progress to timetrack; grant select on project.v_bundle_apps to timetrack; +grant select on project.v_excel_workpackage_app to timetrack; +grant select on project.v_excel_app to timetrack; +grant select on project.v_excel_workpackage to timetrack; diff --git a/src/main/resources/public.sql b/src/main/resources/public.sql index 2704cc8..e78a457 100644 --- a/src/main/resources/public.sql +++ b/src/main/resources/public.sql @@ -1,5 +1,5 @@ create or replace view public.v_version as -select 20260114 as version; +select 20260119 as version; grant usage on schema public to timetrack;