mAi
275cbd5e51
feat(t-paliad-186): mig 088 — fristenrechner-category trigger
...
Phase 3 Slice 5 Step F-2. BEFORE INSERT/UPDATE trigger on
paliad.projects rejects any write that binds proceeding_type_id to a
non-fristenrechner-category proceeding_types row. NULL is allowed.
PostgreSQL CHECK constraints can't reference other tables, so this
is the only way to evaluate the (proceeding_types.category =
'fristenrechner') predicate per row without restructuring the
existing FK relationship.
Trigger trades narrower FK + partial-unique-index approach for
keeping the existing schema reference (mig 027) untouched. Slice 9
or later may drop this trigger when the litigation category is
fully retired.
Error message is bilingual (German + English) so the Go handler can
either surface it verbatim OR — preferably — intercept the typed
service error first and emit a clean i18n string. mig 088 is
defence-in-depth; the Go service-layer validation is the primary
path.
Idempotent: CREATE OR REPLACE FUNCTION + DROP TRIGGER IF EXISTS
before CREATE TRIGGER.
2026-05-15 01:01:17 +02:00
..
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-30 03:42:25 +02:00
2026-04-16 13:54:19 +02:00
2026-04-30 03:42:25 +02:00
2026-04-16 13:54:19 +02:00
2026-04-30 03:42:25 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 13:54:19 +02:00
2026-04-16 17:11:02 +02:00
2026-04-16 17:11:02 +02:00
2026-04-17 11:59:49 +02:00
2026-04-17 11:59:49 +02:00
2026-04-17 13:54:32 +02:00
2026-04-17 13:54:32 +02:00
2026-04-18 20:26:11 +02:00
2026-04-18 20:26:11 +02:00
2026-04-20 12:34:38 +02:00
2026-04-20 12:34:38 +02:00
2026-04-20 13:17:24 +02:00
2026-04-20 13:17:24 +02:00
2026-04-20 17:35:38 +02:00
2026-04-20 17:35:38 +02:00
2026-04-20 17:35:38 +02:00
2026-04-20 17:35:38 +02:00
2026-04-23 01:00:31 +02:00
2026-04-23 01:00:31 +02:00
2026-04-25 23:37:51 +02:00
2026-04-25 23:37:51 +02:00
2026-04-27 11:47:10 +02:00
2026-04-27 11:47:10 +02:00
2026-04-27 14:59:03 +02:00
2026-04-27 14:59:03 +02:00
2026-04-27 19:34:56 +02:00
2026-04-27 19:34:56 +02:00
2026-04-28 13:05:22 +02:00
2026-04-28 13:05:22 +02:00
2026-04-29 22:09:39 +02:00
2026-04-29 22:09:39 +02:00
2026-04-30 03:42:25 +02:00
2026-04-29 22:17:32 +02:00
2026-04-30 10:54:46 +02:00
2026-04-30 10:54:46 +02:00
2026-04-30 11:11:47 +02:00
2026-04-30 11:11:47 +02:00
2026-04-30 12:49:04 +02:00
2026-04-30 12:49:04 +02:00
2026-04-30 16:41:38 +02:00
2026-04-30 16:41:38 +02:00
2026-05-04 14:36:50 +02:00
2026-05-04 14:36:50 +02:00
2026-05-04 14:36:50 +02:00
2026-05-04 14:36:50 +02:00
2026-05-04 14:57:54 +02:00
2026-05-04 14:57:54 +02:00
2026-05-04 17:03:58 +02:00
2026-05-04 17:03:58 +02:00
2026-05-04 17:03:58 +02:00
2026-05-04 17:03:58 +02:00
2026-05-05 00:05:12 +02:00
2026-05-05 00:05:12 +02:00
2026-05-05 00:05:12 +02:00
2026-05-05 00:05:12 +02:00
2026-05-05 00:05:12 +02:00
2026-05-05 00:05:12 +02:00
2026-05-05 00:05:12 +02:00
2026-05-05 00:05:12 +02:00
2026-05-05 01:25:03 +02:00
2026-05-05 01:25:03 +02:00
2026-05-05 01:49:01 +02:00
2026-05-05 01:49:01 +02:00
2026-05-05 02:19:37 +02:00
2026-05-05 02:19:37 +02:00
2026-05-05 02:48:31 +02:00
2026-05-05 02:48:31 +02:00
2026-05-05 03:17:46 +02:00
2026-05-05 03:17:46 +02:00
2026-05-05 03:46:45 +02:00
2026-05-05 03:46:45 +02:00
2026-05-05 04:32:50 +02:00
2026-05-05 04:32:50 +02:00
2026-05-05 11:18:38 +02:00
2026-05-05 11:18:38 +02:00
2026-05-05 11:18:38 +02:00
2026-05-05 11:22:14 +02:00
2026-05-05 11:18:38 +02:00
2026-05-05 11:18:38 +02:00
2026-05-05 11:53:13 +02:00
2026-05-05 11:53:13 +02:00
2026-05-05 13:29:47 +02:00
2026-05-05 13:29:47 +02:00
2026-05-06 12:37:08 +02:00
2026-05-06 12:37:08 +02:00
2026-05-06 15:13:26 +02:00
2026-05-06 15:13:26 +02:00
2026-05-06 16:45:19 +02:00
2026-05-06 16:45:19 +02:00
2026-05-07 12:51:37 +02:00
2026-05-07 12:51:37 +02:00
2026-05-07 20:58:57 +02:00
2026-05-07 20:58:57 +02:00
2026-05-07 21:49:33 +02:00
2026-05-07 21:49:33 +02:00
2026-05-07 22:00:26 +02:00
2026-05-07 22:00:26 +02:00
2026-05-07 22:21:45 +02:00
2026-05-07 22:21:45 +02:00
2026-05-07 22:41:18 +02:00
2026-05-07 22:41:18 +02:00
2026-05-08 02:13:58 +02:00
2026-05-08 02:13:58 +02:00
2026-05-08 16:00:21 +02:00
2026-05-08 16:00:21 +02:00
2026-05-08 16:23:12 +02:00
2026-05-08 16:23:12 +02:00
2026-05-08 16:54:34 +02:00
2026-05-08 16:54:34 +02:00
2026-05-08 17:16:57 +02:00
2026-05-08 17:16:57 +02:00
2026-05-08 17:16:57 +02:00
2026-05-08 17:16:57 +02:00
2026-05-08 19:15:44 +02:00
2026-05-08 19:15:44 +02:00
2026-05-08 19:20:52 +02:00
2026-05-08 19:20:52 +02:00
2026-05-08 19:42:05 +02:00
2026-05-08 19:42:05 +02:00
2026-05-08 20:21:13 +02:00
2026-05-08 20:21:13 +02:00
2026-05-08 21:52:50 +02:00
2026-05-08 21:52:50 +02:00
2026-05-08 22:01:44 +02:00
2026-05-08 22:01:44 +02:00
2026-05-08 22:16:55 +02:00
2026-05-08 22:16:55 +02:00
2026-05-08 23:33:53 +02:00
2026-05-08 23:33:53 +02:00
2026-05-09 15:33:20 +02:00
2026-05-09 15:33:20 +02:00
2026-05-09 16:07:17 +02:00
2026-05-09 16:07:17 +02:00
2026-05-15 00:19:19 +02:00
2026-05-15 00:19:19 +02:00
2026-05-15 00:19:31 +02:00
2026-05-15 00:19:31 +02:00
2026-05-15 00:19:37 +02:00
2026-05-15 00:19:37 +02:00
2026-05-15 00:28:38 +02:00
2026-05-15 00:28:38 +02:00
2026-05-15 00:28:49 +02:00
2026-05-15 00:28:49 +02:00
2026-05-15 00:29:00 +02:00
2026-05-15 00:29:00 +02:00
2026-05-15 00:40:50 +02:00
2026-05-15 00:40:50 +02:00
2026-05-15 00:40:59 +02:00
2026-05-15 00:40:59 +02:00
2026-05-15 01:01:08 +02:00
2026-05-15 01:01:08 +02:00
2026-05-15 01:01:17 +02:00
2026-05-15 01:01:17 +02:00