From 5890777686cef366025d811f5e247da7a4429c07 Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Sat, 16 Mar 2024 21:18:13 +0100 Subject: [PATCH] added start_booking in t_camp, see #14 --- build.gradle | 4 +- .../camporganizer/db/jooq/tables/TCamp.java | 7 +++ .../db/jooq/tables/TCampdocument.java | 2 + .../db/jooq/tables/TCampprofile.java | 2 + .../db/jooq/tables/TDocument.java | 2 + .../db/jooq/tables/TDocumentrole.java | 2 + .../db/jooq/tables/TLocation.java | 2 + .../camporganizer/db/jooq/tables/TPerson.java | 2 + .../db/jooq/tables/TPersondocument.java | 2 + .../db/jooq/tables/TProfile.java | 2 + .../db/jooq/tables/TProfilerole.java | 2 + .../camporganizer/db/jooq/tables/TSales.java | 2 + .../db/jooq/tables/TSalescontent.java | 2 + .../db/jooq/tables/TSalescontenttype.java | 2 + .../camporganizer/db/jooq/tables/VCamp.java | 60 +++++++++++-------- .../db/jooq/tables/VVersion.java | 2 +- .../db/jooq/tables/pojos/TCamp.java | 21 ++++++- .../db/jooq/tables/records/TCampRecord.java | 19 +++++- src/main/resources/tables/camp.sql | 3 +- src/main/resources/upgrade_2024-03-07.sql | 6 -- src/main/resources/upgrade_2024-03-16.sql | 9 +++ src/main/resources/views/version.sql | 2 +- 22 files changed, 120 insertions(+), 37 deletions(-) delete mode 100644 src/main/resources/upgrade_2024-03-07.sql create mode 100644 src/main/resources/upgrade_2024-03-16.sql diff --git a/build.gradle b/build.gradle index b96cc95..6c11246 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ apply plugin: 'java' apply plugin: 'maven-publish' group = 'de.jottyfan' -version = '2024.03.07' +version = '2024.03.16' description = """COJooq""" @@ -47,7 +47,7 @@ dependencies { import org.jooq.meta.jaxb.Logging jooq { - version = '3.19.1' + version = '3.19.6' edition = nu.studer.gradle.jooq.JooqEdition.OSS configurations { camporganizer { diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCamp.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCamp.java index c231bce..0ea9d68 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCamp.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCamp.java @@ -144,6 +144,11 @@ public class TCamp extends TableImpl { */ public final TableField BLOCKED_BEDS_MALE = createField(DSL.name("blocked_beds_male"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, ""); + /** + * The column public.t_camp.start_booking. + */ + public final TableField START_BOOKING = createField(DSL.name("start_booking"), SQLDataType.LOCALDATETIME(6).nullable(false), this, ""); + private TCamp(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); } @@ -181,6 +186,8 @@ public class TCamp extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TCampPath extends TCamp implements Path { + + private static final long serialVersionUID = 1L; public TCampPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCampdocument.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCampdocument.java index cca3da8..56b2a84 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCampdocument.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCampdocument.java @@ -110,6 +110,8 @@ public class TCampdocument extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TCampdocumentPath extends TCampdocument implements Path { + + private static final long serialVersionUID = 1L; public TCampdocumentPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCampprofile.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCampprofile.java index 353d063..3f3c636 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCampprofile.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TCampprofile.java @@ -116,6 +116,8 @@ public class TCampprofile extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TCampprofilePath extends TCampprofile implements Path { + + private static final long serialVersionUID = 1L; public TCampprofilePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TDocument.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TDocument.java index cb4e01a..c915959 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TDocument.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TDocument.java @@ -124,6 +124,8 @@ public class TDocument extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TDocumentPath extends TDocument implements Path { + + private static final long serialVersionUID = 1L; public TDocumentPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TDocumentrole.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TDocumentrole.java index 6270a9c..2ac5616 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TDocumentrole.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TDocumentrole.java @@ -110,6 +110,8 @@ public class TDocumentrole extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TDocumentrolePath extends TDocumentrole implements Path { + + private static final long serialVersionUID = 1L; public TDocumentrolePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TLocation.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TLocation.java index c0f07e5..bfd32a2 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TLocation.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TLocation.java @@ -115,6 +115,8 @@ public class TLocation extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TLocationPath extends TLocation implements Path { + + private static final long serialVersionUID = 1L; public TLocationPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TPerson.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TPerson.java index 8d9c079..9604844 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TPerson.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TPerson.java @@ -201,6 +201,8 @@ public class TPerson extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TPersonPath extends TPerson implements Path { + + private static final long serialVersionUID = 1L; public TPersonPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TPersondocument.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TPersondocument.java index 5530718..c4cb495 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TPersondocument.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TPersondocument.java @@ -120,6 +120,8 @@ public class TPersondocument extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TPersondocumentPath extends TPersondocument implements Path { + + private static final long serialVersionUID = 1L; public TPersondocumentPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TProfile.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TProfile.java index 6028cbd..ad7c9e6 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TProfile.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TProfile.java @@ -133,6 +133,8 @@ public class TProfile extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TProfilePath extends TProfile implements Path { + + private static final long serialVersionUID = 1L; public TProfilePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TProfilerole.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TProfilerole.java index f9d0d25..dfecb3a 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TProfilerole.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TProfilerole.java @@ -104,6 +104,8 @@ public class TProfilerole extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TProfilerolePath extends TProfilerole implements Path { + + private static final long serialVersionUID = 1L; public TProfilerolePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSales.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSales.java index dc54b57..1d4e3c9 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSales.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSales.java @@ -153,6 +153,8 @@ public class TSales extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TSalesPath extends TSales implements Path { + + private static final long serialVersionUID = 1L; public TSalesPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSalescontent.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSalescontent.java index 6327632..3f54a33 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSalescontent.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSalescontent.java @@ -104,6 +104,8 @@ public class TSalescontent extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TSalescontentPath extends TSalescontent implements Path { + + private static final long serialVersionUID = 1L; public TSalescontentPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSalescontenttype.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSalescontenttype.java index 70c0dee..f1e2548 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSalescontenttype.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/TSalescontenttype.java @@ -97,6 +97,8 @@ public class TSalescontenttype extends TableImpl { * A subtype implementing {@link Path} for simplified path-based joins. */ public static class TSalescontenttypePath extends TSalescontenttype implements Path { + + private static final long serialVersionUID = 1L; public TSalescontenttypePath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { super(path, childPath, parentPath); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/VCamp.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/VCamp.java index c0e437d..acb1060 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/VCamp.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/VCamp.java @@ -149,30 +149,42 @@ public class VCamp extends TableImpl { private VCamp(Name alias, Table aliased, Field[] parameters, Condition where) { super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.view(""" - create view "v_camp" as SELECT c.pk, - (c.depart < now()) AS is_over, - c.name, - c.arrive, - c.depart, - date_part('isoyear'::text, c.arrive) AS year, - l.name AS location_name, - c.min_age, - c.max_age, - l.url, - c.price, - c.countries, - c.fk_document, - c.beds_female, - c.beds_male, - c.blocked_beds_female, - c.blocked_beds_male, - count(mp.pk) AS used_beds_male, - count(fp.pk) AS used_beds_female - FROM (((t_camp c - LEFT JOIN t_location l ON ((c.fk_location = l.pk))) - LEFT JOIN t_person mp ON (((mp.fk_camp = c.pk) AND (mp.accept = true) AND (mp.sex = 'male'::enum_sex) AND (mp.camprole = 'student'::enum_camprole)))) - LEFT JOIN t_person fp ON (((fp.fk_camp = c.pk) AND (fp.accept = true) AND (fp.sex = 'female'::enum_sex) AND (fp.camprole = 'student'::enum_camprole)))) - GROUP BY c.pk, c.depart, c.name, c.arrive, l.name, c.min_age, c.max_age, l.url, c.price, c.countries, c.fk_document, c.beds_female, c.beds_male, c.blocked_beds_female, c.blocked_beds_male; + create view "v_camp" as WITH female(used, fk_camp) AS ( + SELECT count(1) AS count, + t_person.fk_camp + FROM t_person + WHERE ((t_person.accept = true) AND (t_person.sex = 'female'::enum_sex) AND (t_person.camprole = 'student'::enum_camprole)) + GROUP BY t_person.fk_camp + ), male(used, fk_camp) AS ( + SELECT count(1) AS count, + t_person.fk_camp + FROM t_person + WHERE ((t_person.accept = true) AND (t_person.sex = 'male'::enum_sex) AND (t_person.camprole = 'student'::enum_camprole)) + GROUP BY t_person.fk_camp + ) + SELECT c.pk, + (c.depart < now()) AS is_over, + c.name, + c.arrive, + c.depart, + date_part('isoyear'::text, c.arrive) AS year, + l.name AS location_name, + c.min_age, + c.max_age, + l.url, + c.price, + c.countries, + c.fk_document, + c.beds_female, + c.beds_male, + c.blocked_beds_female, + c.blocked_beds_male, + COALESCE(male.used, (0)::bigint) AS used_beds_male, + COALESCE(female.used, (0)::bigint) AS used_beds_female + FROM (((t_camp c + LEFT JOIN t_location l ON ((c.fk_location = l.pk))) + LEFT JOIN male ON ((male.fk_camp = c.pk))) + LEFT JOIN female ON ((female.fk_camp = c.pk))); """), where); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/VVersion.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/VVersion.java index b18b246..926d708 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/VVersion.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/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 '2024.02'::text AS version; + create view "v_version" as SELECT '2024.03.16'::text AS version; """), where); } diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/pojos/TCamp.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/pojos/TCamp.java index b72c403..8956ea6 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/pojos/TCamp.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/pojos/TCamp.java @@ -32,6 +32,7 @@ public class TCamp implements Serializable { private final Integer bedsFemale; private final Integer blockedBedsFemale; private final Integer blockedBedsMale; + private final LocalDateTime startBooking; public TCamp(TCamp value) { this.pk = value.pk; @@ -50,6 +51,7 @@ public class TCamp implements Serializable { this.bedsFemale = value.bedsFemale; this.blockedBedsFemale = value.blockedBedsFemale; this.blockedBedsMale = value.blockedBedsMale; + this.startBooking = value.startBooking; } public TCamp( @@ -68,7 +70,8 @@ public class TCamp implements Serializable { Integer bedsMale, Integer bedsFemale, Integer blockedBedsFemale, - Integer blockedBedsMale + Integer blockedBedsMale, + LocalDateTime startBooking ) { this.pk = pk; this.name = name; @@ -86,6 +89,7 @@ public class TCamp implements Serializable { this.bedsFemale = bedsFemale; this.blockedBedsFemale = blockedBedsFemale; this.blockedBedsMale = blockedBedsMale; + this.startBooking = startBooking; } /** @@ -200,6 +204,13 @@ public class TCamp implements Serializable { return this.blockedBedsMale; } + /** + * Getter for public.t_camp.start_booking. + */ + public LocalDateTime getStartBooking() { + return this.startBooking; + } + @Override public boolean equals(Object obj) { if (this == obj) @@ -305,6 +316,12 @@ public class TCamp implements Serializable { } else if (!this.blockedBedsMale.equals(other.blockedBedsMale)) return false; + if (this.startBooking == null) { + if (other.startBooking != null) + return false; + } + else if (!this.startBooking.equals(other.startBooking)) + return false; return true; } @@ -328,6 +345,7 @@ public class TCamp implements Serializable { result = prime * result + ((this.bedsFemale == null) ? 0 : this.bedsFemale.hashCode()); result = prime * result + ((this.blockedBedsFemale == null) ? 0 : this.blockedBedsFemale.hashCode()); result = prime * result + ((this.blockedBedsMale == null) ? 0 : this.blockedBedsMale.hashCode()); + result = prime * result + ((this.startBooking == null) ? 0 : this.startBooking.hashCode()); return result; } @@ -351,6 +369,7 @@ public class TCamp implements Serializable { sb.append(", ").append(bedsFemale); sb.append(", ").append(blockedBedsFemale); sb.append(", ").append(blockedBedsMale); + sb.append(", ").append(startBooking); sb.append(")"); return sb.toString(); diff --git a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/records/TCampRecord.java b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/records/TCampRecord.java index 6b693d4..11e1d74 100644 --- a/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/records/TCampRecord.java +++ b/src/main/java/de/jottyfan/camporganizer/db/jooq/tables/records/TCampRecord.java @@ -260,6 +260,21 @@ public class TCampRecord extends UpdatableRecordImpl { return (Integer) get(15); } + /** + * Setter for public.t_camp.start_booking. + */ + public TCampRecord setStartBooking(LocalDateTime value) { + set(16, value); + return this; + } + + /** + * Getter for public.t_camp.start_booking. + */ + public LocalDateTime getStartBooking() { + return (LocalDateTime) get(16); + } + // ------------------------------------------------------------------------- // Primary key information // ------------------------------------------------------------------------- @@ -283,7 +298,7 @@ public class TCampRecord extends UpdatableRecordImpl { /** * Create a detached, initialised TCampRecord */ - public TCampRecord(Integer pk, String name, LocalDateTime arrive, LocalDateTime depart, Integer fkLocation, Integer minAge, Integer maxAge, String price, String countries, Integer fkDocument, Boolean lockSales, Integer fkProfile, Integer bedsMale, Integer bedsFemale, Integer blockedBedsFemale, Integer blockedBedsMale) { + public TCampRecord(Integer pk, String name, LocalDateTime arrive, LocalDateTime depart, Integer fkLocation, Integer minAge, Integer maxAge, String price, String countries, Integer fkDocument, Boolean lockSales, Integer fkProfile, Integer bedsMale, Integer bedsFemale, Integer blockedBedsFemale, Integer blockedBedsMale, LocalDateTime startBooking) { super(TCamp.T_CAMP); setPk(pk); @@ -302,6 +317,7 @@ public class TCampRecord extends UpdatableRecordImpl { setBedsFemale(bedsFemale); setBlockedBedsFemale(blockedBedsFemale); setBlockedBedsMale(blockedBedsMale); + setStartBooking(startBooking); resetChangedOnNotNull(); } @@ -328,6 +344,7 @@ public class TCampRecord extends UpdatableRecordImpl { setBedsFemale(value.getBedsFemale()); setBlockedBedsFemale(value.getBlockedBedsFemale()); setBlockedBedsMale(value.getBlockedBedsMale()); + setStartBooking(value.getStartBooking()); resetChangedOnNotNull(); } } diff --git a/src/main/resources/tables/camp.sql b/src/main/resources/tables/camp.sql index e97728c..26237d9 100644 --- a/src/main/resources/tables/camp.sql +++ b/src/main/resources/tables/camp.sql @@ -14,5 +14,6 @@ create table public.t_camp ( beds_male integer not null default 0, beds_female integer not null default 0, blocked_beds_male integer not null default 0, - blocked_beds_female integer not null default 0 + blocked_beds_female integer not null default 0, + start_booking timestamp without time zone not null ); diff --git a/src/main/resources/upgrade_2024-03-07.sql b/src/main/resources/upgrade_2024-03-07.sql deleted file mode 100644 index 76f3265..0000000 --- a/src/main/resources/upgrade_2024-03-07.sql +++ /dev/null @@ -1,6 +0,0 @@ -begin; - - \i views/camp.sql - \i views/version.sql - -commit; diff --git a/src/main/resources/upgrade_2024-03-16.sql b/src/main/resources/upgrade_2024-03-16.sql new file mode 100644 index 0000000..77add9f --- /dev/null +++ b/src/main/resources/upgrade_2024-03-16.sql @@ -0,0 +1,9 @@ +begin; + + alter table t_camp add column start_booking timestamp without time zone; + update t_camp set start_booking = '2000-01-01'; + alter table t_camp alter column start_booking set not null; + + \i views/version.sql + +commit; diff --git a/src/main/resources/views/version.sql b/src/main/resources/views/version.sql index 1e7d3a9..b8eae86 100644 --- a/src/main/resources/views/version.sql +++ b/src/main/resources/views/version.sql @@ -1,2 +1,2 @@ create or replace view public.v_version as - select '2024.03.07'::text as version; + select '2024.03.16'::text as version;