-- =============================================
-- CRIAR TABELAS DE EMPRÉSTIMOS - CORREÇÃO FINAL
-- =============================================

-- Criar tabela de empréstimos
CREATE TABLE IF NOT EXISTS emprestimos (
    id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
    cliente_id UUID REFERENCES clientes(id),
    data_emprestimo DATE NOT NULL,
    data_devolucao_prevista DATE NOT NULL,
    data_devolucao_real DATE,
    observacoes TEXT,
    status VARCHAR(20) DEFAULT 'ativo' CHECK (status IN ('ativo', 'devolvido', 'cancelado')),
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Criar tabela de itens de empréstimo
CREATE TABLE IF NOT EXISTS emprestimo_itens (
    id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
    emprestimo_id UUID REFERENCES emprestimos(id) ON DELETE CASCADE,
    produto_id UUID REFERENCES produtos(id),
    produto_variacao_id UUID REFERENCES produto_variacoes(id),
    quantidade INTEGER NOT NULL,
    observacoes TEXT,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Criar tabela de configurações (para eliminar erros de configuração)
CREATE TABLE IF NOT EXISTS configuracoes (
    id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
    chave VARCHAR(255) NOT NULL UNIQUE,
    valor TEXT,
    descricao TEXT,
    tipo VARCHAR(50) DEFAULT 'string',
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Inserir configurações básicas
INSERT INTO configuracoes (chave, valor, descricao, tipo) VALUES
('evolution_api_url', '', 'URL da API Evolution', 'string'),
('whatsapp_alertas_ativo', 'false', 'Ativar alertas WhatsApp', 'boolean')
ON CONFLICT (chave) DO NOTHING;

-- Criar índices para performance
CREATE INDEX IF NOT EXISTS idx_emprestimos_cliente ON emprestimos(cliente_id);
CREATE INDEX IF NOT EXISTS idx_emprestimos_status ON emprestimos(status);
CREATE INDEX IF NOT EXISTS idx_configuracoes_chave ON configuracoes(chave);

-- Verificar criação
SELECT 'Tabelas criadas com sucesso!' as status;
SELECT table_name FROM information_schema.tables 
WHERE table_schema = 'public' 
AND table_name IN ('emprestimos', 'emprestimo_itens', 'configuracoes')
ORDER BY table_name;
