-- 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;
