#!/bin/bash
# ============================================================
# ELO — Script de Setup (Linux / macOS)
# ============================================================
set -e

CYAN='\033[0;36m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; NC='\033[0m'

echo ""
echo -e "${CYAN}========================================${NC}"
echo -e "${CYAN}  ELO — Setup Inicial${NC}"
echo -e "${CYAN}========================================${NC}"
echo ""

# Verificar dependências
echo -e "${YELLOW}Verificando dependências...${NC}"
ERRORS=0

command -v docker &>/dev/null || { echo -e "${RED}  ✗ Docker não encontrado${NC}"; ERRORS=1; }
command -v node &>/dev/null || { echo -e "${RED}  ✗ Node.js não encontrado${NC}"; ERRORS=1; }
command -v npm &>/dev/null || { echo -e "${RED}  ✗ npm não encontrado${NC}"; ERRORS=1; }

[ $ERRORS -eq 1 ] && { echo "Instale as dependências e execute novamente."; exit 1; }

echo -e "${GREEN}  ✓ Docker $(docker --version | cut -d' ' -f3 | tr -d ',')${NC}"
echo -e "${GREEN}  ✓ Node $(node --version)${NC}"

# .env
echo ""
echo -e "${YELLOW}Configurando variáveis de ambiente...${NC}"
if [ ! -f ".env" ]; then
  cp .env.example .env
  echo -e "${GREEN}  ✓ .env criado${NC}"
else
  echo -e "  ℹ .env já existe (não sobrescrito)"
fi

# npm install
echo ""
echo -e "${YELLOW}Instalando dependências...${NC}"
cd services/api && npm install && cd ../..
echo -e "${GREEN}  ✓ Dependências instaladas${NC}"

# Docker
echo ""
echo -e "${YELLOW}Subindo PostgreSQL e Redis...${NC}"
docker compose up -d postgres redis
echo "Aguardando banco..." && sleep 5

# Prisma
echo ""
echo -e "${YELLOW}Configurando banco de dados...${NC}"
cd services/api
npx prisma generate
npx prisma migrate dev --name init
echo -e "${YELLOW}Rodando seed...${NC}"
npx ts-node src/database/seeds/index.ts || echo -e "${YELLOW}Seed ignorado (já pode existir dados)${NC}"
cd ../..

echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}  ✅ Setup concluído!${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo "Para iniciar: cd services/api && npm run start:dev"
echo "Docs: http://localhost:3000/api/docs"
echo "Demo: parent@elo.local / EloDemo2024!"
echo ""
