feat(t-paliad-131): Phase B6 — cross-cutting concepts (Wiedereinsetzung × 4 + Versäumnis + Schriftsatznachreichung + Weiterbehandlung)

PR-7 of the Unified Fristenrechner. Final Phase B migration. Closes
all named cross-procedural deadline gaps in the design.

These concepts fire across many proceedings (any patent application,
any civil case, any opposition, any appeal) and don't naturally belong
to one proceeding-tree timeline. Modelled per design §5.2.4 + §5.3 as
event-trigger-only entries: the user picks the trigger ("the moment
the obstacle was removed", "the date the Versäumnisurteil was served")
and the calculator returns the deadline.

Migration 046 adds 7 trigger_events (ids 200–206, paliad-native space
above the youpc-imported 1–114 range so future resync stays clean) and
7 corresponding event_deadlines + 3 new concepts.

WIEDEREINSETZUNG IN 4 LEGAL CONTEXTS (one shared concept slug
re-establishment-of-rights, seeded in PR-1):
  - PatG §123(2):  trigger 200, 2 months / max 1 year
  - ZPO §234(1):   trigger 201, **2 WEEKS** / max 1 year
                   ← critical distinction; the 2-weeks-not-months ZPO
                     case is the most-confused detail of DE
                     Wiedereinsetzung. notes_de explicitly capitalises
                     "WOCHEN" so the user reads it before computing.
  - EPC Art.122 + R.136(1): trigger 202, 2 months / max 12 months
  - DPMA via PatG §123: trigger 203, 2 months / max 1 year

OTHER CROSS-CUTTING:
  - Versäumnisurteil-Einspruch (ZPO §339): trigger 204, 2 weeks
    Notfrist — keine Verlängerung möglich.
  - Schriftsatznachreichung (ZPO §296a): trigger 205, 3 weeks
    (court-set typical; placeholder the user can adjust via
    click-to-edit if the court actually set a different period)
  - Weiterbehandlung (Art.121 EPÜ + R.135): trigger 206, 2 months
    Distinct from Wiedereinsetzung — niedrigere Gebühr, applies
    BEFORE final loss of rights.

Three new concepts (slug naming per design §4.4):
  - versaeumnisurteil-einspruch (DE-only procedure → DE slug)
  - schriftsatznachreichung (DE-only → DE slug)
  - weiterbehandlung (EPC-native + DE term dominates HLC vocab → DE slug)

Live-verified all 7 trigger_events on paliad.de (tester@hlc.de) via
the existing /tools/fristenrechner "Was kommt nach…" mode:
  trigger 200 → 2026-07-06 (2mo PatG, weekend-shift)
  trigger 201 → 2026-05-18 (2 WEEKS ZPO — the critical case)
  trigger 204 → 2026-05-18 (2 weeks ZPO §339)
  trigger 205 → 2026-05-26 (3 weeks ZPO §296a)
  trigger 206 → 2026-07-06 (2mo EPC weiterbehandlung)

Out of scope (no calculator-relevant deadlines, would just be search
clutter): Mahnverfahren-Widerspruch (ZPO §345), Validierungsfristen
national (Art. 65 EPÜ → varies per state), Teilanmeldung (R.36 EPC →
"until end of pending parent" is anchor-on-revocation-of-grant).

Phase B is now complete. Phase C (search backend) + Phase D (concept-
card UI) follow per design.
This commit is contained in:
m
2026-05-05 03:46:45 +02:00
parent 8c64344126
commit 53d5e5306c
2 changed files with 160 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
-- Reverses 046_cross_cutting_triggers.
DELETE FROM paliad.event_deadlines WHERE id BETWEEN 200 AND 206;
DELETE FROM paliad.trigger_events WHERE id BETWEEN 200 AND 206;
DELETE FROM paliad.deadline_concepts
WHERE slug IN ('versaeumnisurteil-einspruch','schriftsatznachreichung','weiterbehandlung')
AND id NOT IN (SELECT concept_id FROM paliad.deadline_rules WHERE concept_id IS NOT NULL);

View File

@@ -0,0 +1,152 @@
-- t-paliad-131 Phase B6: cross-cutting concepts as trigger_events.
--
-- These concepts (Wiedereinsetzung, Versäumnisurteil-Einspruch,
-- Schriftsatznachreichung, Weiterbehandlung) fire across many proceedings
-- and don't naturally belong to any one proceeding-tree timeline. Per
-- design §5.2.4 + §5.3, they're best modelled as event-trigger-only
-- entries: the user picks the trigger ("the moment the obstacle was
-- removed", "the date the Versäumnisurteil was served") and the
-- calculator returns the deadline.
--
-- Wiedereinsetzung gets 4 trigger_events sharing one concept slug
-- (`re-establishment-of-rights`, seeded in PR-1 migration 040) — one per
-- legal regime since the durations differ:
-- * PatG §123(2): 2 months / max 12 months from missed deadline
-- * ZPO §234(1): 2 weeks / max 1 year (note: 2 WEEKS, not months —
-- the most-confused detail of DE Wiedereinsetzung)
-- * EPÜ Art.122 + R.136(1): 2 months / max 12 months
-- * DPMA via PatG §123: same as patent national
--
-- Versäumnisurteil-Einspruch (ZPO §339) and Schriftsatznachreichung
-- (ZPO §296a) get their own concepts. Weiterbehandlung (Art.121 EPÜ +
-- R.135) is a separate cross-cutting concept (parallel to Wieder-
-- einsetzung but distinct legally — applies before final loss of rights,
-- different fee).
--
-- ID-space: trigger_events / event_deadlines are bigint. youpc-imported
-- rows occupy 1-111. Using 200+ for paliad-native cross-cutting rows
-- leaves headroom for future youpc resync without collision.
-- ============================================================================
-- 1. New concepts (3 new + 1 existing reused for Wiedereinsetzung)
-- ============================================================================
INSERT INTO paliad.deadline_concepts (slug, name_de, name_en, description, aliases, party, category, sort_order) VALUES
('versaeumnisurteil-einspruch', 'Einspruch gegen Versäumnisurteil', 'Objection to Default Judgment',
'Einspruch des säumigen Beklagten gegen ein Versäumnisurteil (§ 339 ZPO) — 2 Wochen ab Zustellung des Versäumnisurteils. Setzt das Verfahren in den Stand vor der Versäumnis zurück.',
ARRAY['Einspruch Versäumnisurteil', 'Versäumnisurteil Einspruch', 'objection default judgment', 'ZPO 339'],
'defendant', 'submission', 46),
('schriftsatznachreichung', 'Schriftsatznachreichung', 'Subsequent Written Submission',
'Nachreichung eines Schriftsatzes nach mündlicher Verhandlung (§ 296a ZPO) — vom Gericht gesetzte Frist, typischerweise 2-3 Wochen. Beschränkt auf Stellungnahme zu in der Verhandlung aufgeworfenen Punkten.',
ARRAY['Schriftsatznachreichung', 'Nachreichung Schriftsatz', 'subsequent submission', 'ZPO 296a'],
'both', 'submission', 47),
('weiterbehandlung', 'Weiterbehandlung', 'Further Processing',
'Antrag auf Weiterbehandlung der EP-Anmeldung nach Fristversäumung (Art. 121 EPÜ + R. 135 EPC) — 2 Monate ab Zustellung der Mitteilung über den Rechtsverlust. Niedrigere Gebühr als Wiedereinsetzung; nicht für alle Fristen verfügbar.',
ARRAY['Weiterbehandlung', 'further processing', 'Art. 121 EPÜ', 'R. 135 EPC'],
'claimant', 'submission', 48)
ON CONFLICT (slug) DO UPDATE SET
name_de = EXCLUDED.name_de,
name_en = EXCLUDED.name_en,
description = EXCLUDED.description,
aliases = EXCLUDED.aliases,
party = EXCLUDED.party,
sort_order = EXCLUDED.sort_order,
updated_at = now();
-- ============================================================================
-- 2. Cross-cutting trigger_events (paliad-native, ids 200+)
-- ============================================================================
INSERT INTO paliad.trigger_events (id, code, name, name_de, description, is_active, concept_id) VALUES
(200, 'wegfall_hindernisses_de_patg', 'Removal of obstacle (PatG §123)',
'Wegfall des Hindernisses (§ 123 PatG)',
'Der Tag, an dem das Hindernis weggefallen ist, das die Einhaltung einer patentrechtlichen Frist verhinderte (§ 123(2) PatG).',
true, 're-establishment-of-rights'),
(201, 'wegfall_hindernisses_de_zpo', 'Removal of obstacle (ZPO §233)',
'Wegfall des Hindernisses (§ 233 ZPO)',
'Der Tag, an dem das Hindernis weggefallen ist, das die Einhaltung einer zivilprozessualen Frist verhinderte (§ 234(1) ZPO).',
true, 're-establishment-of-rights'),
(202, 'wegfall_hindernisses_eu_epc', 'Removal of obstacle (EPC Art.122)',
'Wegfall des Hindernisses (Art. 122 EPÜ)',
'Der Tag, an dem das Hindernis weggefallen ist, das die Einhaltung einer EPA-Frist verhinderte (Art. 122 EPÜ + R. 136(1) EPÜ).',
true, 're-establishment-of-rights'),
(203, 'wegfall_hindernisses_dpma', 'Removal of obstacle (DPMA, PatG §123)',
'Wegfall des Hindernisses (DPMA, § 123 PatG)',
'Der Tag, an dem das Hindernis weggefallen ist, das die Einhaltung einer DPMA-Frist verhinderte (§ 123(2) PatG, gilt auch für DPMA-Verfahren).',
true, 're-establishment-of-rights'),
(204, 'zustellung_versaeumnisurteil', 'Service of default judgment',
'Zustellung Versäumnisurteil',
'Zustellung eines Versäumnisurteils — Trigger für die 2-Wochen-Einspruchsfrist (§ 339 ZPO).',
true, 'versaeumnisurteil-einspruch'),
(205, 'ende_muendl_verhandlung', 'End of oral hearing',
'Ende der mündlichen Verhandlung',
'Schluss der mündlichen Verhandlung — Trigger für eine ggf. vom Gericht gesetzte Frist zur Schriftsatznachreichung (§ 296a ZPO).',
true, 'schriftsatznachreichung'),
(206, 'mitteilung_rechtsverlust_eu', 'Loss-of-rights notice (EPC)',
'Mitteilung über Rechtsverlust (EPA)',
'Zustellung der EPA-Mitteilung nach R. 112(1) EPÜ über den Verlust eines Rechts — Trigger für die 2-Monats-Frist zur Weiterbehandlung (Art. 121 EPÜ).',
true, 'weiterbehandlung')
ON CONFLICT (id) DO UPDATE SET
code = EXCLUDED.code,
name = EXCLUDED.name,
name_de = EXCLUDED.name_de,
description = EXCLUDED.description,
concept_id = EXCLUDED.concept_id,
is_active = EXCLUDED.is_active;
-- ============================================================================
-- 3. event_deadlines for each cross-cutting trigger
-- ============================================================================
INSERT INTO paliad.event_deadlines (
id, trigger_event_id, title, title_de,
duration_value, duration_unit, timing,
notes, notes_en, alt_duration_value, alt_duration_unit, combine_op,
is_active, legal_source
) VALUES
(200, 200, 'Petition for re-establishment of rights (PatG §123)', 'Wiedereinsetzungsantrag (§ 123 PatG)',
2, 'months', 'after',
'Frist beträgt 2 Monate ab Wegfall des Hindernisses (§ 123(2) PatG). Spätestens 1 Jahr nach Ablauf der versäumten Frist; bei Erteilungsfristen + Jahresgebühren keine 1-Jahres-Grenze.',
'Period is 2 months from removal of the obstacle (PatG §123(2)). Latest 1 year after expiry of the missed deadline; no 1-year cap for grant deadlines and annual fees.',
NULL, NULL, NULL, true, 'DE.PatG.123.2'),
(201, 201, 'Petition for re-establishment of rights (ZPO §233)', 'Wiedereinsetzungsantrag (§ 233 ZPO)',
2, 'weeks', 'after',
'Frist beträgt 2 WOCHEN (nicht Monate!) ab Wegfall des Hindernisses (§ 234(1) ZPO). Spätestens 1 Jahr nach Ablauf der versäumten Frist (§ 234(3) ZPO).',
'Period is 2 WEEKS (not months!) from removal of the obstacle (ZPO §234(1)). Latest 1 year after expiry of the missed deadline (ZPO §234(3)).',
NULL, NULL, NULL, true, 'DE.ZPO.234.1'),
(202, 202, 'Petition for re-establishment of rights (EPC Art.122)', 'Wiedereinsetzungsantrag (Art. 122 EPÜ)',
2, 'months', 'after',
'Frist beträgt 2 Monate ab Wegfall des Hindernisses (R. 136(1) EPÜ). Spätestens 12 Monate nach Ablauf der versäumten Frist.',
'Period is 2 months from removal of the obstacle (Rule 136(1) EPC). Latest 12 months after expiry of the missed deadline.',
NULL, NULL, NULL, true, 'EU.EPC-R.136.1'),
(203, 203, 'Petition for re-establishment of rights (DPMA)', 'Wiedereinsetzungsantrag (DPMA)',
2, 'months', 'after',
'Frist beträgt 2 Monate ab Wegfall des Hindernisses (§ 123(2) PatG, gilt auch für DPMA-Verfahren). Spätestens 1 Jahr nach Ablauf der versäumten Frist.',
'Period is 2 months from removal of the obstacle (PatG §123(2), also applies to DPMA proceedings). Latest 1 year after expiry of the missed deadline.',
NULL, NULL, NULL, true, 'DE.PatG.123.2'),
(204, 204, 'Objection to default judgment (ZPO §339)', 'Einspruch gegen Versäumnisurteil (§ 339 ZPO)',
2, 'weeks', 'after',
'Einspruch innerhalb von 2 Wochen ab Zustellung des Versäumnisurteils (§ 339(1) ZPO). Notfrist — keine Verlängerung möglich.',
'Objection within 2 weeks of service of the default judgment (ZPO §339(1)). Statutory deadline — no extension possible.',
NULL, NULL, NULL, true, 'DE.ZPO.339.1'),
(205, 205, 'Subsequent written submission (ZPO §296a)', 'Schriftsatznachreichung (§ 296a ZPO)',
3, 'weeks', 'after',
'Vom Gericht gesetzte Frist zur Nachreichung von Schriftsätzen nach Schluss der mündlichen Verhandlung (§ 296a ZPO) — typischerweise 2-3 Wochen. Beschränkt auf Stellungnahme zu in der Verhandlung aufgeworfenen Punkten.',
'Court-set deadline for subsequent submissions after close of oral hearing (ZPO §296a) — typically 2-3 weeks. Limited to comments on matters raised at the hearing.',
NULL, NULL, NULL, true, 'DE.ZPO.296a'),
(206, 206, 'Request for further processing (Art.121 EPC)', 'Weiterbehandlungsantrag (Art. 121 EPÜ)',
2, 'months', 'after',
'Antrag auf Weiterbehandlung innerhalb von 2 Monaten ab Zustellung der Mitteilung über den Rechtsverlust (R. 135(1) EPÜ). Gebühr pro versäumte Frist. Nicht verfügbar für bestimmte Fristen (z.B. Prioritätsfrist).',
'Request for further processing within 2 months of service of the loss-of-rights notice (Rule 135(1) EPC). Fee per missed deadline. Not available for certain deadlines (e.g. priority period).',
NULL, NULL, NULL, true, 'EU.EPC-R.135.1')
ON CONFLICT (id) DO UPDATE SET
trigger_event_id = EXCLUDED.trigger_event_id,
title = EXCLUDED.title,
title_de = EXCLUDED.title_de,
duration_value = EXCLUDED.duration_value,
duration_unit = EXCLUDED.duration_unit,
timing = EXCLUDED.timing,
notes = EXCLUDED.notes,
notes_en = EXCLUDED.notes_en,
legal_source = EXCLUDED.legal_source,
is_active = EXCLUDED.is_active;