From 0cd2aa1e85eff7a6373549a235ce23be274d200f Mon Sep 17 00:00:00 2001 From: martinrichter Date: Thu, 30 Apr 2026 14:17:04 +0200 Subject: [PATCH] Add websecret field to Receipt model and database --- .../src/main/java/eu/pretix/libpretixsync/models/Receipt.kt | 1 + .../eu/pretix/libpretixsync/models/db/ReceiptExtensions.kt | 1 + .../eu/pretix/libpretixsync/sqldelight/ReceiptExtensions.kt | 1 + .../common/eu/pretix/libpretixsync/sqldelight/Receipt.sq | 6 ++++-- libpretixsync/src/main/sqldelight/common/migrations/116.sqm | 1 + .../postgres/eu/pretix/libpretixsync/sqldelight/Receipt.sq | 3 ++- .../sqlite/eu/pretix/libpretixsync/sqldelight/Receipt.sq | 3 ++- 7 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 libpretixsync/src/main/sqldelight/common/migrations/116.sqm diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/models/Receipt.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/models/Receipt.kt index 78fa6df1..143cbf98 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/models/Receipt.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/models/Receipt.kt @@ -28,6 +28,7 @@ data class Receipt( val emailTo: String? = null, val closing: Long? = null, val additionalText: String? = null, + val webSecret: String? = null, ) { enum class PaymentType(val value: String) { CASH("cash"), diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/models/db/ReceiptExtensions.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/models/db/ReceiptExtensions.kt index cba87ac0..a73428c4 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/models/db/ReceiptExtensions.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/models/db/ReceiptExtensions.kt @@ -36,4 +36,5 @@ fun Receipt.toModel() = invoiceNameParts = invoice_name_parts, orderEmail = order_email, orderPhone = order_phone, + webSecret = websecret, ) diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/sqldelight/ReceiptExtensions.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/sqldelight/ReceiptExtensions.kt index eceb7116..ca129820 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/sqldelight/ReceiptExtensions.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/sqldelight/ReceiptExtensions.kt @@ -63,6 +63,7 @@ fun Receipt.toJSON(): JSONObject { jo.put("cashier", cashier_numericid) jo.put("training", training) jo.put("additional_text", additional_text) + jo.put("web_secret", if (websecret != null) websecret else JSONObject.NULL) // the following columns are not persisted on the server, // but only used locally to act as holders of data diff --git a/libpretixsync/src/main/sqldelight/common/eu/pretix/libpretixsync/sqldelight/Receipt.sq b/libpretixsync/src/main/sqldelight/common/eu/pretix/libpretixsync/sqldelight/Receipt.sq index 1f9a6490..09cce33e 100644 --- a/libpretixsync/src/main/sqldelight/common/eu/pretix/libpretixsync/sqldelight/Receipt.sq +++ b/libpretixsync/src/main/sqldelight/common/eu/pretix/libpretixsync/sqldelight/Receipt.sq @@ -38,7 +38,8 @@ INSERT INTO Receipt ( printed, server_id, started, - training + training, + websecret ) VALUES ( ?, @@ -67,9 +68,10 @@ VALUES ( ?, ?, ?, + ?, ? -); +); updateOrderCode: UPDATE Receipt SET diff --git a/libpretixsync/src/main/sqldelight/common/migrations/116.sqm b/libpretixsync/src/main/sqldelight/common/migrations/116.sqm new file mode 100644 index 00000000..70c03104 --- /dev/null +++ b/libpretixsync/src/main/sqldelight/common/migrations/116.sqm @@ -0,0 +1 @@ +ALTER TABLE Receipt ADD COLUMN websecret TEXT; diff --git a/libpretixsync/src/main/sqldelight/postgres/eu/pretix/libpretixsync/sqldelight/Receipt.sq b/libpretixsync/src/main/sqldelight/postgres/eu/pretix/libpretixsync/sqldelight/Receipt.sq index 03b28770..91e4d83c 100644 --- a/libpretixsync/src/main/sqldelight/postgres/eu/pretix/libpretixsync/sqldelight/Receipt.sq +++ b/libpretixsync/src/main/sqldelight/postgres/eu/pretix/libpretixsync/sqldelight/Receipt.sq @@ -28,7 +28,8 @@ CREATE TABLE Receipt ( server_id bigint, started boolean DEFAULT FALSE, training boolean DEFAULT FALSE NOT NULL, - closing bigint REFERENCES Closing (id) ON DELETE CASCADE + closing bigint REFERENCES Closing (id) ON DELETE CASCADE, + websecret character varying(255) ); CREATE INDEX Receipt_closing_index ON Receipt (closing); diff --git a/libpretixsync/src/main/sqldelight/sqlite/eu/pretix/libpretixsync/sqldelight/Receipt.sq b/libpretixsync/src/main/sqldelight/sqlite/eu/pretix/libpretixsync/sqldelight/Receipt.sq index b579b71a..55267119 100644 --- a/libpretixsync/src/main/sqldelight/sqlite/eu/pretix/libpretixsync/sqldelight/Receipt.sq +++ b/libpretixsync/src/main/sqldelight/sqlite/eu/pretix/libpretixsync/sqldelight/Receipt.sq @@ -28,7 +28,8 @@ CREATE TABLE Receipt ( printed INTEGER AS Boolean DEFAULT 0 NOT NULL, server_id INTEGER, started INTEGER AS Boolean DEFAULT 0, - training INTEGER AS Boolean DEFAULT 0 NOT NULL + training INTEGER AS Boolean DEFAULT 0 NOT NULL, + websecret TEXT ); CREATE INDEX Receipt_closing_index ON Receipt (closing);