-- 机构/委办局表
CREATE TABLE IF NOT EXISTS organizations (
    id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    name        VARCHAR(100) NOT NULL,
    slug        VARCHAR(50) NOT NULL UNIQUE,
    short_name  VARCHAR(20),
    logo_url    TEXT,
    description TEXT,
    sort_order  INT NOT NULL DEFAULT 0,
    is_active   BOOLEAN NOT NULL DEFAULT true,
    created_at  TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at  TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

-- 给用户表添加机构关联
ALTER TABLE users ADD COLUMN IF NOT EXISTS org_id UUID REFERENCES organizations(id);
CREATE INDEX IF NOT EXISTS idx_users_org ON users(org_id);

-- 给应用表添加机构关联（应用可属于某个机构，NULL表示全局通用应用）
ALTER TABLE applications ADD COLUMN IF NOT EXISTS org_id UUID REFERENCES organizations(id);
CREATE INDEX IF NOT EXISTS idx_apps_org ON applications(org_id);

-- 给知识库添加机构关联
ALTER TABLE knowledge_bases ADD COLUMN IF NOT EXISTS org_id UUID REFERENCES organizations(id);

-- 种子数据：常用机构
INSERT INTO organizations (id, name, slug, short_name, description, sort_order) VALUES
('a0000000-0000-0000-0000-000000000001', '科学技术局', 'keji', '科技局', '负责全市科技发展规划、科技项目管理、高新技术企业培育等工作', 1),
('a0000000-0000-0000-0000-000000000002', '公安局', 'gongan', '公安局', '负责全市社会治安管理、户籍管理、交通管理、网络安全等工作', 2),
('a0000000-0000-0000-0000-000000000003', '发展和改革局', 'fagai', '发改局', '负责全市国民经济和社会发展战略、规划、投资管理等工作', 3),
('a0000000-0000-0000-0000-000000000004', '教育局', 'jiaoyu', '教育局', '负责全市教育事业发展规划、基础教育、职业教育等工作', 4),
('a0000000-0000-0000-0000-000000000005', '人力资源和社会保障局', 'renshe', '人社局', '负责全市人力资源开发、就业创业、社会保障等工作', 5),
('a0000000-0000-0000-0000-000000000006', '财政局', 'caizheng', '财政局', '负责全市财政收支管理、预算管理、政府采购等工作', 6),
('a0000000-0000-0000-0000-000000000007', '住房和城乡建设局', 'zhujian', '住建局', '负责全市住房保障、城乡建设、房地产管理等工作', 7),
('a0000000-0000-0000-0000-000000000008', '市场监督管理局', 'shijianju', '市监局', '负责全市市场监管、食品安全、知识产权保护等工作', 8)
ON CONFLICT (id) DO NOTHING;

-- 将现有用户关联到科技局
UPDATE users SET org_id = 'a0000000-0000-0000-0000-000000000001' WHERE org_id IS NULL;

-- 将现有应用关联到科技局
UPDATE applications SET org_id = 'a0000000-0000-0000-0000-000000000001' WHERE org_id IS NULL;
