-- ============================================================
--  SiGeM — Dados Iniciais (Seed)
--  Município de Moatize — Versão 1.0
-- ============================================================

-- PERFIS DE ACESSO
INSERT INTO auth.perfis (codigo, nome, nivel, descricao) VALUES
('PRESIDENTE',     'Presidente do Município',    1, 'Acesso máximo — aprovações e dashboard executivo'),
('DIR_FINANCEIRO', 'Director Financeiro',         2, 'Supervisão de todos os módulos financeiros'),
('TESOUREIRO',     'Tesoureiro',                  3, 'Gestão de pagamentos e fluxo de caixa'),
('CONTABILISTA',   'Contabilista',                4, 'Lançamentos e relatórios contabilísticos'),
('CHEFE_TRIBUT',   'Chefe de Tributação',         5, 'Gestão completa do módulo tributário'),
('TEC_TRIBUT',     'Técnico de Tributação',       6, 'Lançamentos tributários sem isenções'),
('TEC_UGEA',       'Técnico UGEA',                7, 'Gestão de aquisições e contratos'),
('COBRADOR',       'Cobrador de Campo',           8, 'Acesso exclusivo à App de Cobradores');

-- PERMISSÕES POR PERFIL
INSERT INTO auth.permissoes (perfil_id, modulo, pode_ler, pode_escrever, pode_aprovar, pode_exportar, pode_apagar) VALUES
-- Presidente (1) - acesso total
(1,'dashboard',     TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'tributacao',    TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'tesouraria',    TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'contabilidade', TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'ugea',          TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'aprovacoes',    TRUE, TRUE,  TRUE, TRUE, FALSE),
(1,'rh',            TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'orcamento',     TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'obras',         TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'licencas',      TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'patrimonio',    TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'relatorios',    TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'reclamacoes',   TRUE, FALSE, TRUE, TRUE, FALSE),
(1,'seguranca',     TRUE, TRUE,  TRUE, TRUE, TRUE),
-- Director Financeiro (2)
(2,'dashboard',     TRUE, FALSE, FALSE, TRUE, FALSE),
(2,'tributacao',    TRUE, TRUE,  TRUE,  TRUE, FALSE),
(2,'tesouraria',    TRUE, TRUE,  TRUE,  TRUE, FALSE),
(2,'contabilidade', TRUE, TRUE,  TRUE,  TRUE, FALSE),
(2,'ugea',          TRUE, TRUE,  TRUE,  TRUE, FALSE),
(2,'rh',            TRUE, TRUE,  FALSE, TRUE, FALSE),
(2,'orcamento',     TRUE, TRUE,  FALSE, TRUE, FALSE),
(2,'relatorios',    TRUE, FALSE, FALSE, TRUE, FALSE),
-- Tesoureiro (3)
(3,'dashboard',     TRUE, FALSE, FALSE, FALSE, FALSE),
(3,'tributacao',    TRUE, FALSE, FALSE, FALSE, FALSE),
(3,'tesouraria',    TRUE, TRUE,  FALSE, TRUE,  FALSE),
(3,'contabilidade', TRUE, FALSE, FALSE, FALSE, FALSE),
-- Contabilista (4)
(4,'dashboard',     TRUE, FALSE, FALSE, FALSE, FALSE),
(4,'contabilidade', TRUE, TRUE,  FALSE, TRUE,  FALSE),
(4,'tesouraria',    TRUE, FALSE, FALSE, FALSE, FALSE),
(4,'orcamento',     TRUE, FALSE, FALSE, TRUE,  FALSE),
-- Chefe Tributação (5)
(5,'dashboard',     TRUE, FALSE, FALSE, FALSE, FALSE),
(5,'tributacao',    TRUE, TRUE,  TRUE,  TRUE,  FALSE),
(5,'cobradores',    TRUE, FALSE, FALSE, TRUE,  FALSE),
(5,'licencas',      TRUE, TRUE,  TRUE,  TRUE,  FALSE),
-- Técnico Tributação (6)
(6,'tributacao',    TRUE, TRUE,  FALSE, FALSE, FALSE),
(6,'cobradores',    TRUE, FALSE, FALSE, FALSE, FALSE),
-- Técnico UGEA (7)
(7,'ugea',          TRUE, TRUE,  FALSE, TRUE,  FALSE),
(7,'obras',         TRUE, TRUE,  FALSE, TRUE,  FALSE),
(7,'dashboard',     TRUE, FALSE, FALSE, FALSE, FALSE),
-- Cobrador (8)
(8,'cobradores',    TRUE, TRUE,  FALSE, FALSE, FALSE);

-- UTILIZADORES INICIAIS
INSERT INTO auth.utilizadores (numero, nome, email, telefone, senha_hash, perfil_id, departamento) VALUES
('MOA-0001', 'Abel Machava',       'presidente@isc-hefsiba.ac.mz',   '+258841000001', crypt('SiGeM@2025!', gen_salt('bf',12)), 1, 'Presidência'),
('MOA-0002', 'Fátima Nhamussua',   'tesoureira@isc-hefsiba.ac.mz',   '+258841000002', crypt('SiGeM@2025!', gen_salt('bf',12)), 3, 'Finanças'),
('MOA-0003', 'Jorge Mussane',      'contabilista@isc-hefsiba.ac.mz', '+258841000003', crypt('SiGeM@2025!', gen_salt('bf',12)), 4, 'Finanças'),
('MOA-0004', 'Graça Tembe',        'tributacao@isc-hefsiba.ac.mz',   '+258841000004', crypt('SiGeM@2025!', gen_salt('bf',12)), 5, 'Tributação'),
('MOA-0005', 'Hélder Moiane',      'ugea@isc-hefsiba.ac.mz',         '+258841000005', crypt('SiGeM@2025!', gen_salt('bf',12)), 7, 'UGEA'),
('MOA-0006', 'Sérgio Mbewe',       'cobrador1@isc-hefsiba.ac.mz',    '+258841000006', crypt('SiGeM@2025!', gen_salt('bf',12)), 8, 'Tributação'),
('MOA-0007', 'Luísa Banda',        'cobrador2@isc-hefsiba.ac.mz',    '+258841000007', crypt('SiGeM@2025!', gen_salt('bf',12)), 8, 'Tributação'),
('MOA-0008', 'Carlos Phiri',       'cobrador3@isc-hefsiba.ac.mz',    '+258841000008', crypt('SiGeM@2025!', gen_salt('bf',12)), 8, 'Tributação'),
('MOA-0009', 'Admin Sistema',      'admin@isc-hefsiba.ac.mz',        '+258841000009', crypt('SiGeM@Admin2025!', gen_salt('bf',12)), 2, 'TI');

-- TIPOS DE IMPOSTO
INSERT INTO tributacao.tipos_imposto (codigo, nome, periodicidade, valor_fixo, taxa_percentual, tem_iva, conta_contab) VALUES
('IPRA',    'Imposto Predial Autárquico',              'anual',      NULL,    0.50, FALSE, '7.1.1.01'),
('TXM_D',   'Taxa Diária de Mercado',                  'diaria',    150.00,   NULL, FALSE, '7.1.2.01'),
('TXM_M',   'Taxa Mensal de Barraca',                  'mensal',   1200.00,   NULL, FALSE, '7.1.2.02'),
('TXA',     'Taxa Ambulante',                          'diaria',    50.00,   NULL, FALSE, '7.1.2.03'),
('ALV_COM', 'Alvará Comercial',                        'anual',   4000.00,   NULL, FALSE, '7.1.3.01'),
('ALV_OCU', 'Alvará de Ocupação',                      'anual',   2500.00,   NULL, FALSE, '7.1.3.02'),
('TXP',     'Taxa de Publicidade',                     'mensal',   400.00,   NULL, FALSE, '7.1.3.03'),
('TXT',     'Taxa de Turismo',                         'mensal',  2000.00,   NULL, FALSE, '7.1.4.01'),
('ISPC',    'Imposto Simplificado Pequeno Contrib.',   'mensal',    NULL,    3.00, FALSE, '7.1.5.01'),
('TXL',     'Taxa de Licença de Construção',           'unica',   3500.00,   NULL, FALSE, '7.1.3.04');

-- DIÁRIOS CONTABILÍSTICOS
INSERT INTO contabilidade.diarios (codigo, nome, tipo) VALUES
('CX',  'Diário de Caixa',          'caixa'),
('BNC', 'Diário Banco',             'banco'),
('CMP', 'Diário de Compras',        'compras'),
('VND', 'Diário de Vendas',         'vendas'),
('OPE', 'Diário de Operações',      'operacoes'),
('AJU', 'Diário de Ajustes',        'ajustes'),
('SAL', 'Diário de Salários',       'salarios'),
('INV', 'Diário de Investimentos',  'investimentos');

-- EXERCÍCIO FISCAL ACTUAL
INSERT INTO contabilidade.exercicios (ano, estado) VALUES (2025, 'aberto');

-- PLANO DE CONTAS SISTAFE (resumido)
INSERT INTO contabilidade.plano_contas (codigo, nome, tipo, natureza, nivel, aceita_lancamento) VALUES
('1',       'Activo',                             'ativo',    'devedora',  1, FALSE),
('1.1',     'Activo Corrente',                    'ativo',    'devedora',  2, FALSE),
('1.1.1',   'Caixa e Equivalentes',              'ativo',    'devedora',  3, FALSE),
('1.1.1.01','Caixa Principal — BCI Moatize',     'ativo',    'devedora',  4, TRUE),
('1.1.1.02','Conta BIM Moatize',                 'ativo',    'devedora',  4, TRUE),
('1.1.2',   'Valores a Receber',                 'ativo',    'devedora',  3, FALSE),
('1.1.2.01','Impostos a Receber',                'ativo',    'devedora',  4, TRUE),
('2',       'Passivo',                            'passivo',  'credora',   1, FALSE),
('2.1',     'Passivo Corrente',                  'passivo',  'credora',   2, FALSE),
('2.1.1',   'Fornecedores a Pagar',              'passivo',  'credora',   3, FALSE),
('2.1.1.01','Fornecedores Obras',                'passivo',  'credora',   4, TRUE),
('2.1.1.02','Fornecedores Bens e Serviços',      'passivo',  'credora',   4, TRUE),
('6',       'Despesas',                          'despesa',  'devedora',  1, FALSE),
('6.1',     'Despesas com Pessoal',              'despesa',  'devedora',  2, FALSE),
('6.1.1.01','Salários e Vencimentos',            'despesa',  'devedora',  4, TRUE),
('6.1.1.02','INSS Entidade Patronal',            'despesa',  'devedora',  4, TRUE),
('6.2',     'Despesas com Bens e Serviços',      'despesa',  'devedora',  2, FALSE),
('6.2.1.01','Prestação de Serviços',             'despesa',  'devedora',  4, TRUE),
('6.2.1.02','Aquisição de Bens',                 'despesa',  'devedora',  4, TRUE),
('6.2.1.03','Combustíveis e Lubrificantes',      'despesa',  'devedora',  4, TRUE),
('6.3',     'Despesas com Obras',                'despesa',  'devedora',  2, FALSE),
('6.3.1.01','Empreitadas de Construção',         'despesa',  'devedora',  4, TRUE),
('6.3.1.02','Empreitadas de Reabilitação',       'despesa',  'devedora',  4, TRUE),
('7',       'Receitas',                          'receita',  'credora',   1, FALSE),
('7.1',     'Receitas Próprias',                 'receita',  'credora',   2, FALSE),
('7.1.1',   'Impostos Patrimoniais',             'receita',  'credora',   3, FALSE),
('7.1.1.01','IPRA — Imposto Predial',            'receita',  'credora',   4, TRUE),
('7.1.2',   'Taxas Municipais',                  'receita',  'credora',   3, FALSE),
('7.1.2.01','Taxas Diárias de Mercado',          'receita',  'credora',   4, TRUE),
('7.1.2.02','Taxas Mensais de Barraca',          'receita',  'credora',   4, TRUE),
('7.1.2.03','Taxas de Ambulantes',               'receita',  'credora',   4, TRUE),
('7.1.3',   'Taxas de Licenças e Alvarás',       'receita',  'credora',   3, FALSE),
('7.1.3.01','Alvarás Comerciais',                'receita',  'credora',   4, TRUE),
('7.1.3.02','Alvarás de Ocupação',               'receita',  'credora',   4, TRUE),
('7.1.3.03','Taxas de Publicidade',              'receita',  'credora',   4, TRUE),
('7.1.4',   'Taxas de Turismo e Hospitalidade',  'receita',  'credora',   3, FALSE),
('7.1.4.01','Taxa de Turismo',                   'receita',  'credora',   4, TRUE),
('7.1.5',   'Impostos sobre Rendimento',         'receita',  'credora',   3, FALSE),
('7.1.5.01','ISPC — Pequenos Contribuintes',     'receita',  'credora',   4, TRUE),
('7.2',     'Transferências do Estado',          'receita',  'credora',   2, FALSE),
('7.2.1.01','Transferências OGE',                'receita',  'credora',   4, TRUE);

-- CONTAS BANCÁRIAS DO MUNICÍPIO
INSERT INTO tesouraria.contas_bancarias (banco, nib, titular, tipo, saldo_atual, principal) VALUES
('BCI — Banco Comercial e de Investimentos', '0008.0000.12345678901.20', 'Município de Moatize', 'conta_corrente', 7200000.00, TRUE),
('BIM — Millennium BIM',                     '0001.0000.98765432101.17', 'Município de Moatize', 'conta_poupanca',  1500000.00, FALSE);

-- ZONAS DE COBRANÇA — MOATIZE
INSERT INTO cobradores.zonas (nome, descricao, bairro) VALUES
('Zona 1 — Mercado de Moatize',  'Mercado principal e arredores',         'Mercado'),
('Zona 2 — Bairro Chipanga A',   'Chipanga A e zonas mineiras Vale',      'Chipanga A'),
('Zona 3 — Bairro Chipanga B',   'Chipanga B e zona industrial',          'Chipanga B'),
('Zona 4 — Bairro Benga',        'Benga e zona industrial Vale',          'Benga'),
('Zona 5 — Centro Urbano',       'Avenida Principal e centro',            'Centro'),
('Zona 6 — Bairro Zobue',        'Zobue e bairros periféricos norte',     'Zobue');

-- CARGOS RH
INSERT INTO rh.cargos (codigo, nome, nivel_salarial, salario_base) VALUES
('P01', 'Presidente do Município',          1, 85000.00),
('P02', 'Director de Departamento',         2, 55000.00),
('T01', 'Técnico Superior',                 3, 42000.00),
('T02', 'Técnico de Nível Médio',           4, 32000.00),
('A01', 'Agente Administrativo',            5, 24000.00),
('C01', 'Cobrador de Campo',                6, 18000.00),
('M01', 'Motorista',                        7, 16000.00),
('X01', 'Auxiliar de Serviços Gerais',      8, 13500.00);

-- FUNCIONÁRIOS INICIAIS
INSERT INTO rh.funcionarios (utilizador_id, numero, nome, cargo_id, departamento, data_admissao, salario_base, subsidio_funcao, subsidio_transp, nuit)
SELECT u.id, 'MOA-RH-000' || ROW_NUMBER() OVER(), u.nome,
  CASE u.email
    WHEN 'presidente@isc-hefsiba.ac.mz' THEN 1
    WHEN 'tesoureira@isc-hefsiba.ac.mz' THEN 3
    WHEN 'contabilista@isc-hefsiba.ac.mz' THEN 3
    WHEN 'tributacao@isc-hefsiba.ac.mz' THEN 2
    WHEN 'ugea@isc-hefsiba.ac.mz' THEN 4
    ELSE 6
  END,
  u.departamento,
  '2020-01-01',
  CASE u.email
    WHEN 'presidente@isc-hefsiba.ac.mz' THEN 85000.00
    WHEN 'tesoureira@isc-hefsiba.ac.mz' THEN 42000.00
    WHEN 'contabilista@isc-hefsiba.ac.mz' THEN 38000.00
    WHEN 'tributacao@isc-hefsiba.ac.mz' THEN 40000.00
    WHEN 'ugea@isc-hefsiba.ac.mz' THEN 32000.00
    ELSE 18000.00
  END,
  CASE u.email WHEN 'presidente@isc-hefsiba.ac.mz' THEN 12000.00 ELSE 3000.00 END,
  2000.00,
  '40012345' || ROW_NUMBER() OVER()
FROM auth.utilizadores u WHERE u.email != 'admin@isc-hefsiba.ac.mz';

-- ORÇAMENTO 2025
INSERT INTO orcamento.orcamentos (ano, total_receitas, total_despesas, estado, aprovado_em) VALUES
(2025, 74400000.00, 71500000.00, 'em_execucao', '2024-12-15 10:00:00+00');

INSERT INTO orcamento.rubricas (orcamento_id, codigo, descricao, tipo, dotacao_inicial, dotacao_atual, executado) VALUES
(1, 'R.1.1', 'IPRA — Imposto Predial',              'receita', 31000000, 31000000, 18200000),
(1, 'R.1.2', 'Taxas de Mercado',                    'receita', 14000000, 14000000,  8400000),
(1, 'R.1.3', 'Alvarás e Licenças',                  'receita',  9000000,  9000000,  6100000),
(1, 'R.1.4', 'Taxas de Turismo',                    'receita',  5000000,  5000000,  3200000),
(1, 'R.1.5', 'ISPC',                                'receita',  4000000,  4000000,  2800000),
(1, 'R.2.1', 'Transferências OGE',                  'receita', 29400000, 29400000, 14100000),
(1, 'D.1.1', 'Pessoal — Salários',                  'despesa', 14700000, 14700000, 14679000),
(1, 'D.1.2', 'Bens e Serviços',                     'despesa', 12000000, 12000000,  8421200),
(1, 'D.2.1', 'Investimento — Obras',                'despesa', 18000000, 18000000,  9180000),
(1, 'D.3.1', 'Transferências Correntes',            'despesa',  4200000,  4200000,  2520000),
(1, 'D.4.1', 'Aquisições de Capital',               'despesa',  5000000,  5000000,  1800000),
(1, 'D.5.1', 'Despesas Financeiras',                'despesa',  2100000,  2100000,   980000);

-- TIPOS DE LICENÇA
INSERT INTO licencas.tipos_licenca (codigo, nome, taxa, prazo_dias, validade_meses) VALUES
('ALV_COM',  'Alvará Comercial',             4000.00, 10, 12),
('LIC_CONST','Licença de Construção',        3500.00, 20, 24),
('ALV_OCU',  'Alvará de Ocupação',           2500.00, 15, 12),
('LIC_PUB',  'Licença de Publicidade',       1200.00,  7, 12),
('LIC_SAN',  'Licença Sanitária',            1800.00, 10, 12),
('ALV_IND',  'Alvará Industrial',            6000.00, 25, 12),
('LIC_TUR',  'Licença de Turismo',           3000.00, 15, 12),
('LIC_TRANS','Licença de Transporte',        2000.00, 10, 12);

-- CATEGORIAS DE PATRIMÓNIO
INSERT INTO patrimonio.categorias (codigo, nome, vida_util_anos, taxa_amortiz) VALUES
('IMO', 'Imóveis e Edificações',        50, 2.00),
('VIA', 'Viaturas e Maquinaria',        10, 10.00),
('INF', 'Equipamento Informático',       5, 20.00),
('MOB', 'Mobiliário de Escritório',     10, 10.00),
('EQP', 'Equipamentos Especiais',        8, 12.50),
('INF2','Infraestruturas',              30,  3.33),
('OUT', 'Outros Bens',                  10, 10.00);

-- REGRAS DE NOTIFICAÇÃO
INSERT INTO notificacoes.regras (codigo, nome, modulo, canais, template_sms) VALUES
('APROV_URGENTE',     'Aprovação urgente pendente',        'aprovacoes',   ARRAY['sistema','sms'],       'SiGeM Moatize: Tem 1 aprovacao URGENTE pendente ha {horas}h ({numero} - {valor} MZN). Aceda a sigem.isc-hefsiba.ac.mz'),
('DEVEDOR_90DIAS',    'Devedor crítico >90 dias',          'tributacao',   ARRAY['sistema','sms'],       'MUNICIPIO MOATIZE: Divida tributaria {valor} MZN ha {dias} dias ({numero}). Regularize em tributacao@isc-hefsiba.ac.mz'),
('PRAZO_UGEA_30',     'Prazo concurso UGEA a 30 dias',    'ugea',         ARRAY['sistema','email'],     NULL),
('COBRADOR_META',     'Cobrador abaixo de meta 30%',       'cobradores',   ARRAY['sistema'],             NULL),
('COBRANCA_DUP',      'Cobrança duplicada detectada',      'cobradores',   ARRAY['sistema'],             NULL),
('RECEITA_BAIXA',     'Receita diária abaixo do esperado', 'tesouraria',   ARRAY['sistema','email'],     NULL),
('LOGIN_SUSPEITO',    'Tentativa de acesso suspeita',      'auth',         ARRAY['sistema','sms','email'],NULL),
('ALVARA_EXPIRAR',    'Alvará a expirar em 30 dias',       'licencas',     ARRAY['sistema','sms'],       'MUNICIPIO MOATIZE: O seu alvara {numero} expira em {data}. Renove em sigem.isc-hefsiba.ac.mz'),
('OBRA_ATRASO',       'Obra em atraso',                    'obras',        ARRAY['sistema'],             NULL),
('RECLAMACAO_PRAZO',  'Reclamação próxima do prazo',       'reclamacoes',  ARRAY['sistema'],             NULL);

-- CONTRIBUINTES DE DEMONSTRAÇÃO
INSERT INTO tributacao.contribuintes (nuit, nome, tipo, bairro, telefone) VALUES
('400123456', 'Mercado de Moatize Lda.',      'colectivo', 'Mercado',     '+258841111001'),
('400234567', 'Hotel Zambeze Moatize',        'colectivo', 'Centro',      '+258841111002'),
('400345678', 'Minas Moatize Lda.',           'colectivo', 'Benga',       '+258841111003'),
('400456789', 'Transportes Tete Lda.',        'colectivo', 'Centro',      '+258841111004'),
('400567890', 'Padaria Beija-Flor',           'singular',  'Chipanga A',  '+258841111005'),
('400678901', 'Supermercado Zambeze',         'colectivo', 'Centro',      '+258841111006'),
('400789012', 'António Zimba',               'singular',  'Centro',      '+258841111007'),
('400890123', 'Cimentos de Moatize',          'colectivo', 'Benga',       '+258841111008');

-- FORNECEDORES UGEA
INSERT INTO ugea.fornecedores (nuit, nome, tipo, telefone, email) VALUES
('300111001', 'Construções Tete Lda.',        'empresa', '+258871111001', 'geral@constete.co.mz'),
('300111002', 'Construções Zambeze Lda.',     'empresa', '+258871111002', 'geral@constzambeze.co.mz'),
('300111003', 'Petromoc Moatize',             'empresa', '+258871111003', 'moatize@petromoc.co.mz'),
('300111004', 'Serviços Gerais Tete',         'empresa', '+258871111004', 'admin@sgtete.co.mz'),
('300111005', 'Electro Tete',                'empresa', '+258871111005', 'electrotete@email.com'),
('300111006', 'Papelaria Central Moatize',    'empresa', '+258871111006', 'papelaria@central.co.mz');
