CREATE TABLE IF NOT EXISTS regioes_pessoa (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    empresa_id INTEGER NOT NULL,
    codigo TEXT NOT NULL,
    descricao TEXT NOT NULL,
    ativo INTEGER NOT NULL DEFAULT 1,
    criado_em TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
    atualizado_em TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
    excluido_em TEXT,
    FOREIGN KEY (empresa_id) REFERENCES empresas(id)
);
CREATE UNIQUE INDEX IF NOT EXISTS uq_regioes_pessoa_empresa_codigo ON regioes_pessoa (empresa_id, codigo);
CREATE INDEX IF NOT EXISTS idx_regioes_pessoa_empresa_ativo ON regioes_pessoa (empresa_id, ativo);

CREATE TABLE IF NOT EXISTS areas_pessoa (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    empresa_id INTEGER NOT NULL,
    codigo TEXT NOT NULL,
    regiao_id INTEGER NOT NULL,
    descricao TEXT NOT NULL,
    ativo INTEGER NOT NULL DEFAULT 1,
    criado_em TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
    atualizado_em TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
    excluido_em TEXT,
    FOREIGN KEY (empresa_id) REFERENCES empresas(id),
    FOREIGN KEY (regiao_id) REFERENCES regioes_pessoa(id)
);
CREATE UNIQUE INDEX IF NOT EXISTS uq_areas_pessoa_empresa_codigo ON areas_pessoa (empresa_id, codigo);
CREATE INDEX IF NOT EXISTS idx_areas_pessoa_empresa_regiao ON areas_pessoa (empresa_id, regiao_id, ativo);
