-- Settings module: integrations + feature flags
create table if not exists public.system_integrations (
  id uuid primary key default gen_random_uuid(),
  name text not null,
  provider text not null,
  status text not null default 'connected' check (status in ('connected', 'degraded', 'disconnected')),
  last_sync_at timestamptz,
  endpoint text,
  notes text,
  created_at timestamptz not null default now()
);

create table if not exists public.feature_flags (
  id uuid primary key default gen_random_uuid(),
  key text not null unique,
  description text,
  enabled boolean not null default false,
  environment text default 'production',
  updated_at timestamptz not null default now()
);

alter table public.system_integrations enable row level security;
alter table public.feature_flags enable row level security;

drop policy if exists "auth read system_integrations" on public.system_integrations;
create policy "auth read system_integrations" on public.system_integrations for select to authenticated using (true);

drop policy if exists "auth read feature_flags" on public.feature_flags;
create policy "auth read feature_flags" on public.feature_flags for select to authenticated using (true);

insert into public.system_integrations (name, provider, status, last_sync_at, endpoint, notes) values
  ('Core Banking API', 'SAMA Bridge', 'connected', now() - interval '45 seconds', 'https://api.core-bank.gw/v2', 'تكامل البنك المركزي السعودي - إنتاج'),
  ('Global Gold Feed', 'LBMA Primary', 'connected', now() - interval '2 seconds', 'wss://feed.lbma.com/spot', 'مصدر تسعير الذهب الأساسي - 12ms'),
  ('SMS Gateway', 'Twilio', 'degraded', now() - interval '4 minutes', 'https://api.twilio.com/2010-04-01', 'معدل الفشل > 5% - تحت المراقبة'),
  ('Email Service', 'Resend', 'connected', now() - interval '12 seconds', 'https://api.resend.com', 'إشعارات المعاملات والتقارير'),
  ('AML Screening', 'Refinitiv World-Check', 'connected', now() - interval '3 minutes', 'https://api.refinitiv.com/aml', 'فحص العقوبات والقوائم'),
  ('KYC Verification', 'Onfido', 'connected', now() - interval '1 minute', 'https://api.onfido.com/v3', 'التحقق من المستندات والوجه'),
  ('Vault Logistics', 'Brinks Global Services', 'connected', now() - interval '8 minutes', 'https://api.brinks.com/secure', 'تتبع شحنات الذهب الفعلي'),
  ('Bullion Desk Backup', 'BullionDesk Feed', 'connected', now() - interval '5 seconds', 'https://api.bulliondesk.com', 'مصدر تسعير احتياطي - 45ms')
on conflict do nothing;

insert into public.feature_flags (key, description, enabled, environment) values
  ('institutional_block_trades', 'تفعيل صفقات الكتلة للعملاء المؤسسيين (>500 oz)', true, 'production'),
  ('two_factor_required', 'إلزام التحقق الثنائي لكافة المسؤولين', true, 'production'),
  ('ai_risk_scoring', 'محرك تقييم المخاطر بالذكاء الاصطناعي', true, 'production'),
  ('physical_redemption', 'السماح باسترداد الذهب الفعلي للعملاء', true, 'production'),
  ('whale_tier_pricing', 'تسعير ديناميكي لشريحة العملاء الكبار', true, 'production'),
  ('beta_arabic_reports', 'تقارير PDF باللغة العربية (تجريبي)', false, 'production'),
  ('webhook_v2', 'Webhooks الجديدة بصيغة V2', false, 'staging'),
  ('auto_reconciliation', 'مطابقة تلقائية للمعاملات (>99%)', true, 'production'),
  ('compliance_auto_freeze', 'تجميد تلقائي للحسابات عند الاشتباه', true, 'production'),
  ('audit_log_retention_7y', 'الاحتفاظ بسجل التدقيق لـ 7 سنوات', true, 'production')
on conflict (key) do nothing;
