-- Add access control to users
ALTER TABLE usuarios ADD COLUMN IF NOT EXISTS regioes_permitidas TEXT[] DEFAULT ARRAY['SP'];

-- Add region to catalog tables
ALTER TABLE empresas ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';
ALTER TABLE cursos ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';
ALTER TABLE tipos_eventos ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';
ALTER TABLE anos_formaturas ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';
ALTER TABLE tipos_servicos ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';

-- Add region to operational tables
ALTER TABLE cadastro_fot ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';
ALTER TABLE agenda ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';
ALTER TABLE financial_transactions ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';
ALTER TABLE cadastro_profissionais ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';

-- Pricing table update
ALTER TABLE precos_tipos_eventos ADD COLUMN IF NOT EXISTS regiao CHAR(2) DEFAULT 'SP';

-- Update constraints for pricing
ALTER TABLE precos_tipos_eventos DROP CONSTRAINT IF EXISTS precos_tipos_eventos_tipo_evento_id_funcao_profissional_id_key;
ALTER TABLE precos_tipos_eventos ADD CONSTRAINT precos_tipos_eventos_unique_pricing UNIQUE (tipo_evento_id, funcao_profissional_id, regiao);

-- Update constraints for catalogs to allow same name in different regions
ALTER TABLE empresas DROP CONSTRAINT IF EXISTS empresas_nome_key;
ALTER TABLE empresas ADD CONSTRAINT empresas_nome_regiao_key UNIQUE (nome, regiao);

ALTER TABLE cursos DROP CONSTRAINT cursos_nome_key;
ALTER TABLE cursos ADD CONSTRAINT cursos_nome_regiao_key UNIQUE (nome, regiao);

ALTER TABLE tipos_eventos DROP CONSTRAINT IF EXISTS tipos_eventos_nome_key;
ALTER TABLE tipos_eventos ADD CONSTRAINT tipos_eventos_nome_regiao_key UNIQUE (nome, regiao);

ALTER TABLE tipos_servicos DROP CONSTRAINT IF EXISTS tipos_servicos_nome_key;
ALTER TABLE tipos_servicos ADD CONSTRAINT tipos_servicos_nome_regiao_key UNIQUE (nome, regiao);

ALTER TABLE anos_formaturas DROP CONSTRAINT IF EXISTS anos_formaturas_ano_semestre_key;
ALTER TABLE anos_formaturas ADD CONSTRAINT anos_formaturas_ano_regiao_key UNIQUE (ano_semestre, regiao);
