-- Seed framework-level type registry vocabulary (Phase 9 GAAF compliance).
-- Moved from Schema.sql — IHP's schema compiler only accepts DDL.
-- ON CONFLICT DO NOTHING makes this idempotent across re-runs.
-- Workplan: IHUB-WP-0014 (A2 — schema parser fixes)

INSERT INTO widget_type_registry (name, label, description) VALUES
    ('chart',          'Chart',              'Data visualisation chart widget'),
    ('form',           'Form',               'Data entry form widget'),
    ('table',          'Table',              'Tabular data display widget'),
    ('action',         'Action Control',     'Button, link, or trigger widget'),
    ('panel',          'Status Panel',       'Summary or status information panel'),
    ('workflow-step',  'Workflow Step',      'Single step in a multi-step workflow'),
    ('recommendation', 'Recommendation',     'AI or system recommendation block'),
    ('chat',           'Chat Region',        'Conversational interaction region'),
    ('diff',           'Diff / Review',      'Code diff or change review element')
ON CONFLICT (name) DO NOTHING;

INSERT INTO event_type_registry (name, label, description) VALUES
    ('viewed',                  'Viewed',                   'Widget was rendered and visible to the user'),
    ('focused',                 'Focused',                  'Widget received input focus'),
    ('clicked',                 'Clicked',                  'Widget was clicked or tapped'),
    ('submitted',               'Submitted',                'Form or action was submitted'),
    ('abandoned',               'Abandoned',                'User navigated away without completing'),
    ('retried',                 'Retried',                  'Action was retried after failure'),
    ('failed',                  'Failed',                   'Action or submission resulted in an error'),
    ('commented',               'Commented',                'User added a comment or annotation'),
    ('flagged_confusing',       'Flagged Confusing',        'User flagged the widget as confusing'),
    ('flagged_helpful',         'Flagged Helpful',          'User flagged the widget as helpful'),
    ('blocked_by_policy',       'Blocked by Policy',        'Action was blocked by a policy rule'),
    ('escalated',               'Escalated',                'Issue was escalated for review'),
    ('accepted_recommendation', 'Accepted Recommendation',  'User accepted an AI recommendation'),
    ('rejected_recommendation', 'Rejected Recommendation',  'User rejected an AI recommendation'),
    ('retracted',               'Retracted',                'Correction marker referencing original event in metadata')
ON CONFLICT (name) DO NOTHING;

INSERT INTO annotation_category_registry (name, label, description) VALUES
    ('friction',            'Friction',              'Interaction caused user effort or difficulty'),
    ('missing_capability',  'Missing Capability',    'Required feature or function is absent'),
    ('policy_conflict',     'Policy Conflict',       'Widget behaviour conflicts with a policy'),
    ('trust_deficit',       'Trust Deficit',         'User lacks confidence in the widget output'),
    ('accessibility',       'Accessibility',         'Accessibility or inclusive design concern'),
    ('workflow_bottleneck', 'Workflow Bottleneck',   'Widget creates a slowdown in the workflow'),
    ('documentation_gap',   'Documentation Gap',     'Missing or insufficient documentation'),
    ('product_opportunity', 'Product Opportunity',   'Observation suggesting a product improvement'),
    ('governance_concern',  'Governance Concern',    'Concern about governance, audit, or compliance')
ON CONFLICT (name) DO NOTHING;

INSERT INTO policy_scope_registry (name, label, description) VALUES
    ('internal',   'Internal',            'Applies to internal operators only'),
    ('org-wide',   'Organisation-Wide',   'Applies across the entire organisation'),
    ('external',   'External-Facing',     'Applies to externally visible surfaces'),
    ('regulatory', 'Regulatory',          'Driven by regulatory or compliance requirements'),
    ('security',   'Security',            'Security policy scope')
ON CONFLICT (name) DO NOTHING;
