diff --git a/directus-cms/schema.json b/directus-cms/schema.json index 7c1bc07..faf0677 100644 --- a/directus-cms/schema.json +++ b/directus-cms/schema.json @@ -2117,87 +2117,87 @@ } }, { - "collection": "ticket_orders", + "collection": "ticket_invoices", "meta": { "accountability": "all", "archive_app_filter": true, - "archive_field": "status", - "archive_value": "cancelled", + "archive_field": null, + "archive_value": null, "collapse": "open", - "collection": "ticket_orders", + "collection": "ticket_invoices", "color": null, - "display_template": "{{order_number}} - {{purchaser_first_name}} {{purchaser_last_name}}", + "display_template": "{{invoice_number}} ({{type}})", "group": "Ticketing", "hidden": false, - "icon": "receipt_long", + "icon": "receipt", "item_duplication_fields": null, - "note": "Conference ticket orders", + "note": "Issued invoice documents (originals, corrections, cancellations) — immutable once sent", "preview_url": null, "singleton": false, - "sort": 2, + "sort": 4, "sort_field": null, "translations": null, - "unarchive_value": "pending", + "unarchive_value": null, "versioning": false }, "schema": { - "name": "ticket_orders" + "name": "ticket_invoices" } }, { - "collection": "tickets", + "collection": "ticket_orders", "meta": { "accountability": "all", "archive_app_filter": true, "archive_field": "status", "archive_value": "cancelled", "collapse": "open", - "collection": "tickets", + "collection": "ticket_orders", "color": null, - "display_template": "{{ticket_code}} - {{attendee_first_name}} {{attendee_last_name}}", + "display_template": "{{order_number}} - {{purchaser_first_name}} {{purchaser_last_name}}", "group": "Ticketing", "hidden": false, - "icon": "confirmation_number", + "icon": "receipt_long", "item_duplication_fields": null, - "note": "Individual conference tickets", + "note": "Conference ticket orders", "preview_url": null, "singleton": false, - "sort": 3, + "sort": 2, "sort_field": null, "translations": null, - "unarchive_value": "valid", + "unarchive_value": "pending", "versioning": false }, "schema": { - "name": "tickets" + "name": "ticket_orders" } }, { - "collection": "ticket_invoices", + "collection": "tickets", "meta": { "accountability": "all", "archive_app_filter": true, - "archive_field": null, - "archive_value": null, + "archive_field": "status", + "archive_value": "cancelled", "collapse": "open", - "collection": "ticket_invoices", + "collection": "tickets", "color": null, - "display_template": "{{invoice_number}} ({{type}})", + "display_template": "{{ticket_code}} - {{attendee_first_name}} {{attendee_last_name}}", "group": "Ticketing", "hidden": false, - "icon": "receipt", + "icon": "confirmation_number", "item_duplication_fields": null, - "note": "Issued invoice documents (originals, corrections, cancellations) — immutable once sent", + "note": "Individual conference tickets", "preview_url": null, "singleton": false, - "sort": 4, + "sort": 3, "sort_field": null, "translations": null, - "unarchive_value": null, + "unarchive_value": "valid", "versioning": false }, "schema": { - "name": "ticket_invoices" + "name": "tickets" } }, { @@ -36952,11 +36952,11 @@ } }, { - "collection": "ticket_orders", + "collection": "ticket_invoices", "field": "id", "type": "uuid", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, "display": null, "display_options": null, @@ -36980,7 +36980,7 @@ }, "schema": { "name": "id", - "table": "ticket_orders", + "table": "ticket_invoices", "data_type": "uuid", "default_value": null, "max_length": null, @@ -36998,72 +36998,28 @@ } }, { - "collection": "ticket_orders", - "field": "order_number", - "type": "string", - "meta": { - "collection": "ticket_orders", - "conditions": null, - "display": "raw", - "display_options": null, - "field": "order_number", - "group": null, - "hidden": false, - "interface": "input", - "note": "Human-readable order number (e.g., ORD-2026-ABC123)", - "options": null, - "readonly": false, - "required": true, - "searchable": true, - "sort": 2, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "half" - }, - "schema": { - "name": "order_number", - "table": "ticket_orders", - "data_type": "character varying", - "default_value": null, - "max_length": 50, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": false, - "is_unique": true, - "is_indexed": true, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "ticket_orders", - "field": "conference", + "collection": "ticket_invoices", + "field": "order", "type": "uuid", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, "display": "related-values", "display_options": { - "template": "{{title}}" + "template": "{{order_number}}" }, - "field": "conference", + "field": "order", "group": null, "hidden": false, "interface": "select-dropdown-m2o", - "note": "Related conference", + "note": "Ticket order this document belongs to", "options": { - "template": "{{title}}" + "template": "{{order_number}}" }, - "readonly": false, + "readonly": true, "required": true, "searchable": true, - "sort": 3, + "sort": 2, "special": [ "m2o" ], @@ -37073,8 +37029,8 @@ "width": "half" }, "schema": { - "name": "conference", - "table": "ticket_orders", + "name": "order", + "table": "ticket_invoices", "data_type": "uuid", "default_value": null, "max_length": null, @@ -37087,63 +37043,63 @@ "is_generated": false, "generation_expression": null, "has_auto_increment": false, - "foreign_key_table": "conferences", + "foreign_key_table": "ticket_orders", "foreign_key_column": "id" } }, { - "collection": "ticket_orders", - "field": "status", + "collection": "ticket_invoices", + "field": "type", "type": "string", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, "display": "labels", "display_options": { "choices": [ { - "background": "#F59E0B", + "background": "#10B981", "foreground": "#FFFFFF", - "value": "pending" + "value": "original" }, { - "background": "#10B981", + "background": "#F59E0B", "foreground": "#FFFFFF", - "value": "paid" + "value": "correction" }, { "background": "#EF4444", "foreground": "#FFFFFF", - "value": "cancelled" + "value": "cancellation" } ], "showAsDot": true }, - "field": "status", + "field": "type", "group": null, "hidden": false, "interface": "select-dropdown", - "note": "Order status", + "note": "Document type: original invoice, Rechnungsberichtigung or Stornorechnung", "options": { "choices": [ { - "text": "Pending", - "value": "pending" + "text": "Original", + "value": "original" }, { - "text": "Paid", - "value": "paid" + "text": "Rechnungsberichtigung", + "value": "correction" }, { - "text": "Cancelled", - "value": "cancelled" + "text": "Stornorechnung", + "value": "cancellation" } ] }, - "readonly": false, + "readonly": true, "required": true, "searchable": true, - "sort": 6, + "sort": 3, "special": null, "translations": null, "validation": null, @@ -37151,16 +37107,16 @@ "width": "half" }, "schema": { - "name": "status", - "table": "ticket_orders", + "name": "type", + "table": "ticket_invoices", "data_type": "character varying", - "default_value": "pending", + "default_value": "original", "max_length": 50, "numeric_precision": null, "numeric_scale": null, "is_nullable": false, "is_unique": false, - "is_indexed": true, + "is_indexed": false, "is_primary_key": false, "is_generated": false, "generation_expression": null, @@ -37170,35 +37126,24 @@ } }, { - "collection": "ticket_orders", - "field": "purchase_type", + "collection": "ticket_invoices", + "field": "invoice_number", "type": "string", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, - "display": "labels", + "display": "raw", "display_options": null, - "field": "purchase_type", + "field": "invoice_number", "group": null, "hidden": false, - "interface": "select-dropdown", - "note": "Personal or company purchase", - "options": { - "choices": [ - { - "text": "Personal", - "value": "personal" - }, - { - "text": "Company", - "value": "company" - } - ] - }, - "readonly": false, + "interface": "input", + "note": "Sequential invoice number (PB-CON{YY}-{NNN}), shared series across all document types", + "options": null, + "readonly": true, "required": true, "searchable": true, - "sort": 7, + "sort": 4, "special": null, "translations": null, "validation": null, @@ -37206,16 +37151,16 @@ "width": "half" }, "schema": { - "name": "purchase_type", - "table": "ticket_orders", + "name": "invoice_number", + "table": "ticket_invoices", "data_type": "character varying", - "default_value": "personal", + "default_value": null, "max_length": 50, "numeric_precision": null, "numeric_scale": null, "is_nullable": false, - "is_unique": false, - "is_indexed": false, + "is_unique": true, + "is_indexed": true, "is_primary_key": false, "is_generated": false, "generation_expression": null, @@ -37225,24 +37170,24 @@ } }, { - "collection": "ticket_orders", - "field": "purchaser_first_name", - "type": "string", + "collection": "ticket_invoices", + "field": "invoice_date", + "type": "timestamp", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, - "display": "raw", + "display": "datetime", "display_options": null, - "field": "purchaser_first_name", + "field": "invoice_date", "group": null, "hidden": false, - "interface": "input", - "note": "Purchaser first name", + "interface": "datetime", + "note": "Invoice date printed on the document", "options": null, - "readonly": false, + "readonly": true, "required": true, "searchable": true, - "sort": 8, + "sort": 5, "special": null, "translations": null, "validation": null, @@ -37250,11 +37195,11 @@ "width": "half" }, "schema": { - "name": "purchaser_first_name", - "table": "ticket_orders", - "data_type": "character varying", + "name": "invoice_date", + "table": "ticket_invoices", + "data_type": "timestamp with time zone", "default_value": null, - "max_length": 100, + "max_length": null, "numeric_precision": null, "numeric_scale": null, "is_nullable": false, @@ -37269,124 +37214,136 @@ } }, { - "collection": "ticket_orders", - "field": "purchaser_last_name", - "type": "string", + "collection": "ticket_invoices", + "field": "invoice_file", + "type": "uuid", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, - "display": "raw", + "display": null, "display_options": null, - "field": "purchaser_last_name", + "field": "invoice_file", "group": null, "hidden": false, - "interface": "input", - "note": "Purchaser last name", - "options": null, - "readonly": false, - "required": true, + "interface": "file", + "note": "The rendered PDF of this document", + "options": { + "enableCreate": false + }, + "readonly": true, + "required": false, "searchable": true, - "sort": 9, - "special": null, + "sort": 6, + "special": [ + "file" + ], "translations": null, "validation": null, "validation_message": null, "width": "half" }, "schema": { - "name": "purchaser_last_name", - "table": "ticket_orders", - "data_type": "character varying", + "name": "invoice_file", + "table": "ticket_invoices", + "data_type": "uuid", "default_value": null, - "max_length": 100, + "max_length": null, "numeric_precision": null, "numeric_scale": null, - "is_nullable": false, + "is_nullable": true, "is_unique": false, "is_indexed": false, "is_primary_key": false, "is_generated": false, "generation_expression": null, "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null + "foreign_key_table": "directus_files", + "foreign_key_column": "id" } }, { - "collection": "ticket_orders", - "field": "purchaser_email", - "type": "string", + "collection": "ticket_invoices", + "field": "related_invoice", + "type": "uuid", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, - "display": "raw", - "display_options": null, - "field": "purchaser_email", + "display": "related-values", + "display_options": { + "template": "{{invoice_number}}" + }, + "field": "related_invoice", "group": null, "hidden": false, - "interface": "input", - "note": "Purchaser email", - "options": null, - "readonly": false, - "required": true, + "interface": "select-dropdown-m2o", + "note": "The document this correction/cancellation refers to (§31 Abs. 5 UStDV)", + "options": { + "template": "{{invoice_number}}" + }, + "readonly": true, + "required": false, "searchable": true, - "sort": 10, - "special": null, + "sort": 7, + "special": [ + "m2o" + ], "translations": null, "validation": null, "validation_message": null, - "width": "full" + "width": "half" }, "schema": { - "name": "purchaser_email", - "table": "ticket_orders", - "data_type": "character varying", + "name": "related_invoice", + "table": "ticket_invoices", + "data_type": "uuid", "default_value": null, - "max_length": 200, + "max_length": null, "numeric_precision": null, "numeric_scale": null, - "is_nullable": false, + "is_nullable": true, "is_unique": false, "is_indexed": true, "is_primary_key": false, "is_generated": false, "generation_expression": null, "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null + "foreign_key_table": "ticket_invoices", + "foreign_key_column": "id" } }, { - "collection": "ticket_orders", - "field": "company_name", - "type": "string", + "collection": "ticket_invoices", + "field": "sent_at", + "type": "timestamp", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, - "display": "raw", - "display_options": null, - "field": "company_name", + "display": "datetime", + "display_options": { + "relative": true + }, + "field": "sent_at", "group": null, "hidden": false, - "interface": "input", - "note": "Company name (for company purchases)", + "interface": "datetime", + "note": "When this document was sent to the customer — set automatically for the confirmation email; once set, the document counts as issued and becomes immutable", "options": null, "readonly": false, "required": false, "searchable": true, - "sort": 12, + "sort": 8, "special": null, "translations": null, "validation": null, "validation_message": null, - "width": "full" + "width": "half" }, "schema": { - "name": "company_name", - "table": "ticket_orders", - "data_type": "character varying", + "name": "sent_at", + "table": "ticket_invoices", + "data_type": "timestamp with time zone", "default_value": null, - "max_length": 200, + "max_length": null, "numeric_precision": null, "numeric_scale": null, "is_nullable": true, @@ -37401,36 +37358,40 @@ } }, { - "collection": "ticket_orders", - "field": "billing_address_line1", - "type": "string", + "collection": "ticket_invoices", + "field": "snapshot_json", + "type": "json", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, - "display": "raw", + "display": null, "display_options": null, - "field": "billing_address_line1", + "field": "snapshot_json", "group": null, "hidden": false, - "interface": "input", - "note": "Street address", - "options": null, - "readonly": false, + "interface": "input-code", + "note": "Immutable snapshot of the billing data and amounts this document was rendered from", + "options": { + "language": "json" + }, + "readonly": true, "required": false, - "searchable": true, - "sort": 14, - "special": null, + "searchable": false, + "sort": 9, + "special": [ + "cast-json" + ], "translations": null, "validation": null, "validation_message": null, "width": "full" }, "schema": { - "name": "billing_address_line1", - "table": "ticket_orders", - "data_type": "character varying", + "name": "snapshot_json", + "table": "ticket_invoices", + "data_type": "json", "default_value": null, - "max_length": 200, + "max_length": null, "numeric_precision": null, "numeric_scale": null, "is_nullable": true, @@ -37445,36 +37406,40 @@ } }, { - "collection": "ticket_orders", - "field": "billing_address_line2", - "type": "string", + "collection": "ticket_invoices", + "field": "user_created", + "type": "uuid", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, - "display": "raw", + "display": "user", "display_options": null, - "field": "billing_address_line2", + "field": "user_created", "group": null, "hidden": false, - "interface": "input", - "note": "Additional address line", - "options": null, - "readonly": false, + "interface": "select-dropdown-m2o", + "note": "Who created this document (empty for system-generated originals)", + "options": { + "template": "{{avatar}} {{first_name}} {{last_name}}" + }, + "readonly": true, "required": false, "searchable": true, - "sort": 15, - "special": null, + "sort": 10, + "special": [ + "user-created" + ], "translations": null, "validation": null, "validation_message": null, - "width": "full" + "width": "half" }, "schema": { - "name": "billing_address_line2", - "table": "ticket_orders", - "data_type": "character varying", + "name": "user_created", + "table": "ticket_invoices", + "data_type": "uuid", "default_value": null, - "max_length": 200, + "max_length": null, "numeric_precision": null, "numeric_scale": null, "is_nullable": true, @@ -37489,36 +37454,40 @@ } }, { - "collection": "ticket_orders", - "field": "billing_city", - "type": "string", + "collection": "ticket_invoices", + "field": "date_created", + "type": "timestamp", "meta": { - "collection": "ticket_orders", + "collection": "ticket_invoices", "conditions": null, - "display": "raw", - "display_options": null, - "field": "billing_city", + "display": "datetime", + "display_options": { + "relative": true + }, + "field": "date_created", "group": null, "hidden": false, - "interface": "input", - "note": "City", + "interface": "datetime", + "note": "Document creation timestamp", "options": null, - "readonly": false, + "readonly": true, "required": false, "searchable": true, - "sort": 16, - "special": null, + "sort": 11, + "special": [ + "date-created" + ], "translations": null, "validation": null, "validation_message": null, "width": "half" }, "schema": { - "name": "billing_city", - "table": "ticket_orders", - "data_type": "character varying", + "name": "date_created", + "table": "ticket_invoices", + "data_type": "timestamp with time zone", "default_value": null, - "max_length": 100, + "max_length": null, "numeric_precision": null, "numeric_scale": null, "is_nullable": true, @@ -37534,40 +37503,621 @@ }, { "collection": "ticket_orders", - "field": "billing_postal_code", - "type": "string", + "field": "id", + "type": "uuid", "meta": { "collection": "ticket_orders", "conditions": null, - "display": "raw", + "display": null, "display_options": null, - "field": "billing_postal_code", + "field": "id", "group": null, - "hidden": false, + "hidden": true, "interface": "input", - "note": "Postal code", + "note": null, "options": null, - "readonly": false, + "readonly": true, "required": false, "searchable": true, - "sort": 17, - "special": null, + "sort": 1, + "special": [ + "uuid" + ], "translations": null, "validation": null, "validation_message": null, - "width": "half" + "width": "full" }, "schema": { - "name": "billing_postal_code", + "name": "id", "table": "ticket_orders", - "data_type": "character varying", + "data_type": "uuid", "default_value": null, - "max_length": 20, + "max_length": null, "numeric_precision": null, "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, + "is_nullable": false, + "is_unique": true, + "is_indexed": false, + "is_primary_key": true, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "order_number", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "order_number", + "group": null, + "hidden": false, + "interface": "input", + "note": "Human-readable order number (e.g., ORD-2026-ABC123)", + "options": null, + "readonly": false, + "required": true, + "searchable": true, + "sort": 2, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "half" + }, + "schema": { + "name": "order_number", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 50, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": false, + "is_unique": true, + "is_indexed": true, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "conference", + "type": "uuid", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "related-values", + "display_options": { + "template": "{{title}}" + }, + "field": "conference", + "group": null, + "hidden": false, + "interface": "select-dropdown-m2o", + "note": "Related conference", + "options": { + "template": "{{title}}" + }, + "readonly": false, + "required": true, + "searchable": true, + "sort": 3, + "special": [ + "m2o" + ], + "translations": null, + "validation": null, + "validation_message": null, + "width": "half" + }, + "schema": { + "name": "conference", + "table": "ticket_orders", + "data_type": "uuid", + "default_value": null, + "max_length": null, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": false, + "is_unique": false, + "is_indexed": true, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": "conferences", + "foreign_key_column": "id" + } + }, + { + "collection": "ticket_orders", + "field": "status", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "labels", + "display_options": { + "choices": [ + { + "background": "#F59E0B", + "foreground": "#FFFFFF", + "value": "pending" + }, + { + "background": "#10B981", + "foreground": "#FFFFFF", + "value": "paid" + }, + { + "background": "#EF4444", + "foreground": "#FFFFFF", + "value": "cancelled" + } + ], + "showAsDot": true + }, + "field": "status", + "group": null, + "hidden": false, + "interface": "select-dropdown", + "note": "Order status", + "options": { + "choices": [ + { + "text": "Pending", + "value": "pending" + }, + { + "text": "Paid", + "value": "paid" + }, + { + "text": "Cancelled", + "value": "cancelled" + } + ] + }, + "readonly": false, + "required": true, + "searchable": true, + "sort": 6, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "half" + }, + "schema": { + "name": "status", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": "pending", + "max_length": 50, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": false, + "is_unique": false, + "is_indexed": true, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "purchase_type", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "labels", + "display_options": null, + "field": "purchase_type", + "group": null, + "hidden": false, + "interface": "select-dropdown", + "note": "Personal or company purchase", + "options": { + "choices": [ + { + "text": "Personal", + "value": "personal" + }, + { + "text": "Company", + "value": "company" + } + ] + }, + "readonly": false, + "required": true, + "searchable": true, + "sort": 7, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "half" + }, + "schema": { + "name": "purchase_type", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": "personal", + "max_length": 50, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": false, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "purchaser_first_name", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "purchaser_first_name", + "group": null, + "hidden": false, + "interface": "input", + "note": "Purchaser first name", + "options": null, + "readonly": false, + "required": true, + "searchable": true, + "sort": 8, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "half" + }, + "schema": { + "name": "purchaser_first_name", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 100, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": false, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "purchaser_last_name", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "purchaser_last_name", + "group": null, + "hidden": false, + "interface": "input", + "note": "Purchaser last name", + "options": null, + "readonly": false, + "required": true, + "searchable": true, + "sort": 9, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "half" + }, + "schema": { + "name": "purchaser_last_name", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 100, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": false, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "purchaser_email", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "purchaser_email", + "group": null, + "hidden": false, + "interface": "input", + "note": "Purchaser email", + "options": null, + "readonly": false, + "required": true, + "searchable": true, + "sort": 10, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "full" + }, + "schema": { + "name": "purchaser_email", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 200, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": false, + "is_unique": false, + "is_indexed": true, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "company_name", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "company_name", + "group": null, + "hidden": false, + "interface": "input", + "note": "Company name (for company purchases)", + "options": null, + "readonly": false, + "required": false, + "searchable": true, + "sort": 12, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "full" + }, + "schema": { + "name": "company_name", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 200, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": true, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "billing_address_line1", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "billing_address_line1", + "group": null, + "hidden": false, + "interface": "input", + "note": "Street address", + "options": null, + "readonly": false, + "required": false, + "searchable": true, + "sort": 14, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "full" + }, + "schema": { + "name": "billing_address_line1", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 200, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": true, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "billing_address_line2", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "billing_address_line2", + "group": null, + "hidden": false, + "interface": "input", + "note": "Additional address line", + "options": null, + "readonly": false, + "required": false, + "searchable": true, + "sort": 15, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "full" + }, + "schema": { + "name": "billing_address_line2", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 200, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": true, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "billing_city", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "billing_city", + "group": null, + "hidden": false, + "interface": "input", + "note": "City", + "options": null, + "readonly": false, + "required": false, + "searchable": true, + "sort": 16, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "half" + }, + "schema": { + "name": "billing_city", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 100, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": true, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } + }, + { + "collection": "ticket_orders", + "field": "billing_postal_code", + "type": "string", + "meta": { + "collection": "ticket_orders", + "conditions": null, + "display": "raw", + "display_options": null, + "field": "billing_postal_code", + "group": null, + "hidden": false, + "interface": "input", + "note": "Postal code", + "options": null, + "readonly": false, + "required": false, + "searchable": true, + "sort": 17, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "half" + }, + "schema": { + "name": "billing_postal_code", + "table": "ticket_orders", + "data_type": "character varying", + "default_value": null, + "max_length": 20, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": true, + "is_unique": false, + "is_indexed": false, "is_primary_key": false, "is_generated": false, "generation_expression": null, @@ -38496,8 +39046,8 @@ "interface": "list-o2m", "note": "Invoice documents issued for this order", "options": { - "template": "{{invoice_number}} ({{type}})", - "enableCreate": false + "enableCreate": false, + "template": "{{invoice_number}} ({{type}})" }, "readonly": false, "required": false, @@ -39190,581 +39740,53 @@ "note": null, "options": null, "readonly": false, - "required": false, - "searchable": true, - "sort": 15, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "half" - }, - "schema": { - "name": "profile_status", - "table": "tickets", - "data_type": "character varying", - "default_value": "pending", - "max_length": 255, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "job_title", - "type": "string", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "job_title", - "group": null, - "hidden": false, - "interface": "input", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 16, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "half" - }, - "schema": { - "name": "job_title", - "table": "tickets", - "data_type": "character varying", - "default_value": null, - "max_length": 255, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "dietary_preferences", - "type": "string", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "dietary_preferences", - "group": null, - "hidden": false, - "interface": "input", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 17, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "half" - }, - "schema": { - "name": "dietary_preferences", - "table": "tickets", - "data_type": "character varying", - "default_value": null, - "max_length": 255, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "pronouns", - "type": "string", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "pronouns", - "group": null, - "hidden": false, - "interface": "input", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 18, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "half" - }, - "schema": { - "name": "pronouns", - "table": "tickets", - "data_type": "character varying", - "default_value": null, - "max_length": 255, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "tshirt_size", - "type": "string", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "tshirt_size", - "group": null, - "hidden": false, - "interface": "input", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 19, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "half" - }, - "schema": { - "name": "tshirt_size", - "table": "tickets", - "data_type": "character varying", - "default_value": null, - "max_length": 255, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "last_event_visited", - "type": "string", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "last_event_visited", - "group": null, - "hidden": false, - "interface": "input", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 20, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "half" - }, - "schema": { - "name": "last_event_visited", - "table": "tickets", - "data_type": "character varying", - "default_value": null, - "max_length": 255, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "heard_about_from", - "type": "string", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "heard_about_from", - "group": null, - "hidden": false, - "interface": "input", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 21, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "half" - }, - "schema": { - "name": "heard_about_from", - "table": "tickets", - "data_type": "character varying", - "default_value": null, - "max_length": 255, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "additional_notes", - "type": "text", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "additional_notes", - "group": null, - "hidden": false, - "interface": "input-multiline", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 22, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "full" - }, - "schema": { - "name": "additional_notes", - "table": "tickets", - "data_type": "text", - "default_value": null, - "max_length": null, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "company", - "type": "string", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "company", - "group": null, - "hidden": false, - "interface": "input", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 23, - "special": null, - "translations": null, - "validation": null, - "validation_message": null, - "width": "full" - }, - "schema": { - "name": "company", - "table": "tickets", - "data_type": "character varying", - "default_value": null, - "max_length": 255, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "tickets", - "field": "is_internal", - "type": "boolean", - "meta": { - "collection": "tickets", - "conditions": null, - "display": null, - "display_options": null, - "field": "is_internal", - "group": null, - "hidden": false, - "interface": "boolean", - "note": null, - "options": null, - "readonly": false, - "required": false, - "searchable": true, - "sort": 8, - "special": [ - "cast-boolean" - ], - "translations": null, - "validation": null, - "validation_message": null, - "width": "full" - }, - "schema": { - "name": "is_internal", - "table": "tickets", - "data_type": "boolean", - "default_value": false, - "max_length": null, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": true, - "is_unique": false, - "is_indexed": false, - "is_primary_key": false, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "ticket_invoices", - "field": "id", - "type": "uuid", - "meta": { - "collection": "ticket_invoices", - "conditions": null, - "display": null, - "display_options": null, - "field": "id", - "group": null, - "hidden": true, - "interface": "input", - "note": null, - "options": null, - "readonly": true, - "required": false, - "searchable": true, - "sort": 1, - "special": [ - "uuid" - ], - "translations": null, - "validation": null, - "validation_message": null, - "width": "full" - }, - "schema": { - "name": "id", - "table": "ticket_invoices", - "data_type": "uuid", - "default_value": null, - "max_length": null, - "numeric_precision": null, - "numeric_scale": null, - "is_nullable": false, - "is_unique": true, - "is_indexed": false, - "is_primary_key": true, - "is_generated": false, - "generation_expression": null, - "has_auto_increment": false, - "foreign_key_table": null, - "foreign_key_column": null - } - }, - { - "collection": "ticket_invoices", - "field": "order", - "type": "uuid", - "meta": { - "collection": "ticket_invoices", - "conditions": null, - "display": "related-values", - "display_options": { - "template": "{{order_number}}" - }, - "field": "order", - "group": null, - "hidden": false, - "interface": "select-dropdown-m2o", - "note": "Ticket order this document belongs to", - "options": { - "template": "{{order_number}}" - }, - "readonly": true, - "required": true, - "searchable": true, - "sort": 2, - "special": [ - "m2o" - ], + "required": false, + "searchable": true, + "sort": 15, + "special": null, "translations": null, "validation": null, "validation_message": null, "width": "half" }, "schema": { - "name": "order", - "table": "ticket_invoices", - "data_type": "uuid", - "default_value": null, - "max_length": null, + "name": "profile_status", + "table": "tickets", + "data_type": "character varying", + "default_value": "pending", + "max_length": 255, "numeric_precision": null, "numeric_scale": null, - "is_nullable": false, + "is_nullable": true, "is_unique": false, - "is_indexed": true, + "is_indexed": false, "is_primary_key": false, "is_generated": false, "generation_expression": null, "has_auto_increment": false, - "foreign_key_table": "ticket_orders", - "foreign_key_column": "id" + "foreign_key_table": null, + "foreign_key_column": null } }, { - "collection": "ticket_invoices", - "field": "type", + "collection": "tickets", + "field": "job_title", "type": "string", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, - "display": "labels", - "display_options": { - "choices": [ - { - "background": "#10B981", - "foreground": "#FFFFFF", - "value": "original" - }, - { - "background": "#F59E0B", - "foreground": "#FFFFFF", - "value": "correction" - }, - { - "background": "#EF4444", - "foreground": "#FFFFFF", - "value": "cancellation" - } - ], - "showAsDot": true - }, - "field": "type", + "display": null, + "display_options": null, + "field": "job_title", "group": null, "hidden": false, - "interface": "select-dropdown", - "note": "Document type: original invoice, Rechnungsberichtigung or Stornorechnung", - "options": { - "choices": [ - { - "text": "Original", - "value": "original" - }, - { - "text": "Rechnungsberichtigung", - "value": "correction" - }, - { - "text": "Stornorechnung", - "value": "cancellation" - } - ] - }, - "readonly": true, - "required": true, + "interface": "input", + "note": null, + "options": null, + "readonly": false, + "required": false, "searchable": true, - "sort": 3, + "sort": 16, "special": null, "translations": null, "validation": null, @@ -39772,14 +39794,14 @@ "width": "half" }, "schema": { - "name": "type", - "table": "ticket_invoices", + "name": "job_title", + "table": "tickets", "data_type": "character varying", - "default_value": "original", - "max_length": 50, + "default_value": null, + "max_length": 255, "numeric_precision": null, "numeric_scale": null, - "is_nullable": false, + "is_nullable": true, "is_unique": false, "is_indexed": false, "is_primary_key": false, @@ -39791,24 +39813,24 @@ } }, { - "collection": "ticket_invoices", - "field": "invoice_number", + "collection": "tickets", + "field": "dietary_preferences", "type": "string", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, - "display": "raw", + "display": null, "display_options": null, - "field": "invoice_number", + "field": "dietary_preferences", "group": null, "hidden": false, "interface": "input", - "note": "Sequential invoice number (PB-CON{YY}-{NNN}), shared series across all document types", + "note": null, "options": null, - "readonly": true, - "required": true, + "readonly": false, + "required": false, "searchable": true, - "sort": 4, + "sort": 17, "special": null, "translations": null, "validation": null, @@ -39816,16 +39838,16 @@ "width": "half" }, "schema": { - "name": "invoice_number", - "table": "ticket_invoices", + "name": "dietary_preferences", + "table": "tickets", "data_type": "character varying", "default_value": null, - "max_length": 50, + "max_length": 255, "numeric_precision": null, "numeric_scale": null, - "is_nullable": false, - "is_unique": true, - "is_indexed": true, + "is_nullable": true, + "is_unique": false, + "is_indexed": false, "is_primary_key": false, "is_generated": false, "generation_expression": null, @@ -39835,24 +39857,24 @@ } }, { - "collection": "ticket_invoices", - "field": "invoice_date", - "type": "timestamp", + "collection": "tickets", + "field": "pronouns", + "type": "string", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, - "display": "datetime", + "display": null, "display_options": null, - "field": "invoice_date", + "field": "pronouns", "group": null, "hidden": false, - "interface": "datetime", - "note": "Invoice date printed on the document", + "interface": "input", + "note": null, "options": null, - "readonly": true, - "required": true, + "readonly": false, + "required": false, "searchable": true, - "sort": 5, + "sort": 18, "special": null, "translations": null, "validation": null, @@ -39860,14 +39882,14 @@ "width": "half" }, "schema": { - "name": "invoice_date", - "table": "ticket_invoices", - "data_type": "timestamp with time zone", + "name": "pronouns", + "table": "tickets", + "data_type": "character varying", "default_value": null, - "max_length": null, + "max_length": 255, "numeric_precision": null, "numeric_scale": null, - "is_nullable": false, + "is_nullable": true, "is_unique": false, "is_indexed": false, "is_primary_key": false, @@ -39879,40 +39901,36 @@ } }, { - "collection": "ticket_invoices", - "field": "invoice_file", - "type": "uuid", + "collection": "tickets", + "field": "tshirt_size", + "type": "string", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, "display": null, "display_options": null, - "field": "invoice_file", + "field": "tshirt_size", "group": null, "hidden": false, - "interface": "file", - "note": "The rendered PDF of this document", - "options": { - "enableCreate": false - }, - "readonly": true, + "interface": "input", + "note": null, + "options": null, + "readonly": false, "required": false, "searchable": true, - "sort": 6, - "special": [ - "file" - ], + "sort": 19, + "special": null, "translations": null, "validation": null, "validation_message": null, "width": "half" }, "schema": { - "name": "invoice_file", - "table": "ticket_invoices", - "data_type": "uuid", + "name": "tshirt_size", + "table": "tickets", + "data_type": "character varying", "default_value": null, - "max_length": null, + "max_length": 255, "numeric_precision": null, "numeric_scale": null, "is_nullable": true, @@ -39922,81 +39940,73 @@ "is_generated": false, "generation_expression": null, "has_auto_increment": false, - "foreign_key_table": "directus_files", - "foreign_key_column": "id" + "foreign_key_table": null, + "foreign_key_column": null } }, { - "collection": "ticket_invoices", - "field": "related_invoice", - "type": "uuid", + "collection": "tickets", + "field": "last_event_visited", + "type": "string", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, - "display": "related-values", - "display_options": { - "template": "{{invoice_number}}" - }, - "field": "related_invoice", + "display": null, + "display_options": null, + "field": "last_event_visited", "group": null, "hidden": false, - "interface": "select-dropdown-m2o", - "note": "The document this correction/cancellation refers to (§31 Abs. 5 UStDV)", - "options": { - "template": "{{invoice_number}}" - }, - "readonly": true, + "interface": "input", + "note": null, + "options": null, + "readonly": false, "required": false, "searchable": true, - "sort": 7, - "special": [ - "m2o" - ], + "sort": 20, + "special": null, "translations": null, "validation": null, "validation_message": null, "width": "half" }, "schema": { - "name": "related_invoice", - "table": "ticket_invoices", - "data_type": "uuid", + "name": "last_event_visited", + "table": "tickets", + "data_type": "character varying", "default_value": null, - "max_length": null, + "max_length": 255, "numeric_precision": null, "numeric_scale": null, "is_nullable": true, "is_unique": false, - "is_indexed": true, + "is_indexed": false, "is_primary_key": false, "is_generated": false, "generation_expression": null, "has_auto_increment": false, - "foreign_key_table": "ticket_invoices", - "foreign_key_column": "id" + "foreign_key_table": null, + "foreign_key_column": null } }, { - "collection": "ticket_invoices", - "field": "sent_at", - "type": "timestamp", + "collection": "tickets", + "field": "heard_about_from", + "type": "string", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, - "display": "datetime", - "display_options": { - "relative": true - }, - "field": "sent_at", + "display": null, + "display_options": null, + "field": "heard_about_from", "group": null, "hidden": false, - "interface": "datetime", - "note": "When this document was sent to the customer — set automatically for the confirmation email; once set, the document counts as issued and becomes immutable", + "interface": "input", + "note": null, "options": null, "readonly": false, "required": false, "searchable": true, - "sort": 8, + "sort": 21, "special": null, "translations": null, "validation": null, @@ -40004,11 +40014,11 @@ "width": "half" }, "schema": { - "name": "sent_at", - "table": "ticket_invoices", - "data_type": "timestamp with time zone", + "name": "heard_about_from", + "table": "tickets", + "data_type": "character varying", "default_value": null, - "max_length": null, + "max_length": 255, "numeric_precision": null, "numeric_scale": null, "is_nullable": true, @@ -40023,38 +40033,34 @@ } }, { - "collection": "ticket_invoices", - "field": "snapshot_json", - "type": "json", + "collection": "tickets", + "field": "additional_notes", + "type": "text", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, "display": null, "display_options": null, - "field": "snapshot_json", + "field": "additional_notes", "group": null, "hidden": false, - "interface": "input-code", - "note": "Immutable snapshot of the billing data and amounts this document was rendered from", - "options": { - "language": "json" - }, - "readonly": true, + "interface": "input-multiline", + "note": null, + "options": null, + "readonly": false, "required": false, - "searchable": false, - "sort": 9, - "special": [ - "cast-json" - ], + "searchable": true, + "sort": 22, + "special": null, "translations": null, "validation": null, "validation_message": null, "width": "full" }, "schema": { - "name": "snapshot_json", - "table": "ticket_invoices", - "data_type": "json", + "name": "additional_notes", + "table": "tickets", + "data_type": "text", "default_value": null, "max_length": null, "numeric_precision": null, @@ -40071,40 +40077,36 @@ } }, { - "collection": "ticket_invoices", - "field": "user_created", - "type": "uuid", + "collection": "tickets", + "field": "company", + "type": "string", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, - "display": "user", + "display": null, "display_options": null, - "field": "user_created", + "field": "company", "group": null, "hidden": false, - "interface": "select-dropdown-m2o", - "note": "Who created this document (empty for system-generated originals)", - "options": { - "template": "{{avatar}} {{first_name}} {{last_name}}" - }, - "readonly": true, + "interface": "input", + "note": null, + "options": null, + "readonly": false, "required": false, "searchable": true, - "sort": 10, - "special": [ - "user-created" - ], + "sort": 23, + "special": null, "translations": null, "validation": null, "validation_message": null, - "width": "half" + "width": "full" }, "schema": { - "name": "user_created", - "table": "ticket_invoices", - "data_type": "uuid", + "name": "company", + "table": "tickets", + "data_type": "character varying", "default_value": null, - "max_length": null, + "max_length": 255, "numeric_precision": null, "numeric_scale": null, "is_nullable": true, @@ -40114,44 +40116,42 @@ "is_generated": false, "generation_expression": null, "has_auto_increment": false, - "foreign_key_table": "directus_users", - "foreign_key_column": "id" + "foreign_key_table": null, + "foreign_key_column": null } }, { - "collection": "ticket_invoices", - "field": "date_created", - "type": "timestamp", + "collection": "tickets", + "field": "is_internal", + "type": "boolean", "meta": { - "collection": "ticket_invoices", + "collection": "tickets", "conditions": null, - "display": "datetime", - "display_options": { - "relative": true - }, - "field": "date_created", + "display": null, + "display_options": null, + "field": "is_internal", "group": null, "hidden": false, - "interface": "datetime", - "note": "Document creation timestamp", + "interface": "boolean", + "note": null, "options": null, - "readonly": true, + "readonly": false, "required": false, "searchable": true, - "sort": 11, + "sort": 8, "special": [ - "date-created" + "cast-boolean" ], "translations": null, "validation": null, "validation_message": null, - "width": "half" + "width": "full" }, "schema": { - "name": "date_created", - "table": "ticket_invoices", - "data_type": "timestamp with time zone", - "default_value": null, + "name": "is_internal", + "table": "tickets", + "data_type": "boolean", + "default_value": false, "max_length": null, "numeric_precision": null, "numeric_scale": null, @@ -44548,37 +44548,37 @@ } }, { - "collection": "ticket_orders", - "field": "conference", - "related_collection": "conferences", + "collection": "ticket_invoices", + "field": "order", + "related_collection": "ticket_orders", "meta": { "junction_field": null, - "many_collection": "ticket_orders", - "many_field": "conference", + "many_collection": "ticket_invoices", + "many_field": "order", "one_allowed_collections": null, - "one_collection": "conferences", + "one_collection": "ticket_orders", "one_collection_field": null, "one_deselect_action": "nullify", - "one_field": null, + "one_field": "invoices", "sort_field": null }, "schema": { - "table": "ticket_orders", - "column": "conference", - "foreign_key_table": "conferences", + "table": "ticket_invoices", + "column": "order", + "foreign_key_table": "ticket_orders", "foreign_key_column": "id", - "constraint_name": "ticket_orders_conference_foreign", + "constraint_name": "ticket_invoices_order_foreign", "on_update": "NO ACTION", - "on_delete": "CASCADE" + "on_delete": "NO ACTION" } }, { - "collection": "ticket_orders", + "collection": "ticket_invoices", "field": "invoice_file", "related_collection": "directus_files", "meta": { "junction_field": null, - "many_collection": "ticket_orders", + "many_collection": "ticket_invoices", "many_field": "invoice_file", "one_allowed_collections": null, "one_collection": "directus_files", @@ -44588,47 +44588,47 @@ "sort_field": null }, "schema": { - "table": "ticket_orders", + "table": "ticket_invoices", "column": "invoice_file", "foreign_key_table": "directus_files", "foreign_key_column": "id", - "constraint_name": "ticket_orders_invoice_file_foreign", + "constraint_name": "ticket_invoices_invoice_file_foreign", "on_update": "NO ACTION", "on_delete": "SET NULL" } }, { - "collection": "tickets", - "field": "order", - "related_collection": "ticket_orders", + "collection": "ticket_invoices", + "field": "related_invoice", + "related_collection": "ticket_invoices", "meta": { "junction_field": null, - "many_collection": "tickets", - "many_field": "order", + "many_collection": "ticket_invoices", + "many_field": "related_invoice", "one_allowed_collections": null, - "one_collection": "ticket_orders", + "one_collection": "ticket_invoices", "one_collection_field": null, "one_deselect_action": "nullify", - "one_field": "tickets", + "one_field": null, "sort_field": null }, "schema": { - "table": "tickets", - "column": "order", - "foreign_key_table": "ticket_orders", + "table": "ticket_invoices", + "column": "related_invoice", + "foreign_key_table": "ticket_invoices", "foreign_key_column": "id", - "constraint_name": "tickets_order_foreign", + "constraint_name": "ticket_invoices_related_invoice_foreign", "on_update": "NO ACTION", - "on_delete": "CASCADE" + "on_delete": "NO ACTION" } }, { - "collection": "tickets", + "collection": "ticket_orders", "field": "conference", "related_collection": "conferences", "meta": { "junction_field": null, - "many_collection": "tickets", + "many_collection": "ticket_orders", "many_field": "conference", "one_allowed_collections": null, "one_collection": "conferences", @@ -44638,88 +44638,88 @@ "sort_field": null }, "schema": { - "table": "tickets", + "table": "ticket_orders", "column": "conference", "foreign_key_table": "conferences", "foreign_key_column": "id", - "constraint_name": "tickets_conference_foreign", + "constraint_name": "ticket_orders_conference_foreign", "on_update": "NO ACTION", "on_delete": "CASCADE" } }, { - "collection": "ticket_invoices", - "field": "order", - "related_collection": "ticket_orders", + "collection": "ticket_orders", + "field": "invoice_file", + "related_collection": "directus_files", "meta": { "junction_field": null, - "many_collection": "ticket_invoices", - "many_field": "order", + "many_collection": "ticket_orders", + "many_field": "invoice_file", "one_allowed_collections": null, - "one_collection": "ticket_orders", + "one_collection": "directus_files", "one_collection_field": null, "one_deselect_action": "nullify", - "one_field": "invoices", + "one_field": null, "sort_field": null }, "schema": { - "table": "ticket_invoices", - "column": "order", - "foreign_key_table": "ticket_orders", + "table": "ticket_orders", + "column": "invoice_file", + "foreign_key_table": "directus_files", "foreign_key_column": "id", - "constraint_name": "ticket_invoices_order_foreign", + "constraint_name": "ticket_orders_invoice_file_foreign", "on_update": "NO ACTION", - "on_delete": "NO ACTION" + "on_delete": "SET NULL" } }, { - "collection": "ticket_invoices", - "field": "invoice_file", - "related_collection": "directus_files", + "collection": "tickets", + "field": "order", + "related_collection": "ticket_orders", "meta": { "junction_field": null, - "many_collection": "ticket_invoices", - "many_field": "invoice_file", + "many_collection": "tickets", + "many_field": "order", "one_allowed_collections": null, - "one_collection": "directus_files", + "one_collection": "ticket_orders", "one_collection_field": null, "one_deselect_action": "nullify", - "one_field": null, + "one_field": "tickets", "sort_field": null }, "schema": { - "table": "ticket_invoices", - "column": "invoice_file", - "foreign_key_table": "directus_files", + "table": "tickets", + "column": "order", + "foreign_key_table": "ticket_orders", "foreign_key_column": "id", - "constraint_name": "ticket_invoices_invoice_file_foreign", + "constraint_name": "tickets_order_foreign", "on_update": "NO ACTION", - "on_delete": "SET NULL" + "on_delete": "CASCADE" } }, { - "collection": "ticket_invoices", - "field": "related_invoice", - "related_collection": "ticket_invoices", + "collection": "tickets", + "field": "conference", + "related_collection": "conferences", "meta": { "junction_field": null, - "many_collection": "ticket_invoices", - "many_field": "related_invoice", + "many_collection": "tickets", + "many_field": "conference", "one_allowed_collections": null, - "one_collection": "ticket_invoices", + "one_collection": "conferences", "one_collection_field": null, "one_deselect_action": "nullify", "one_field": null, "sort_field": null }, "schema": { - "table": "ticket_invoices", - "column": "related_invoice", - "foreign_key_table": "ticket_invoices", + "table": "tickets", + "column": "conference", + "foreign_key_table": "conferences", "foreign_key_column": "id", - "constraint_name": "ticket_invoices_related_invoice_foreign", + "constraint_name": "tickets_conference_foreign", "on_update": "NO ACTION", - "on_delete": "NO ACTION" + "on_delete": "CASCADE" } }, {