/** * Seed inicial de servidores do Tibia * Lista completa de servidores oficiais */ import { resolve } from "node:path"; // Carregar variáveis de ambiente import { config } from "dotenv"; // Tentar carregar .env.local primeiro, depois .env config({ path: resolve(process.cwd(), ".env.local") }); config({ path: resolve(process.cwd(), ".env") }); import { query } from "../index"; export interface ServerSeed { server_name: string; server_type: "pvp" | "no-pvp" | "retro-pvp" | "hardcore-pvp"; location: "NA" | "SA" | "EU" | "OC" | "BR"; } // Lista de servidores oficiais do Tibia (servidores únicos) // Nota: Cada servidor tem um nome único. O tipo pode ser atualizado posteriormente se necessário. const TIBIA_SERVERS: ServerSeed[] = [ // Servidores PvP - EU { server_name: "Antica", server_type: "pvp", location: "EU" }, { server_name: "Assombra", server_type: "pvp", location: "EU" }, { server_name: "Astera", server_type: "pvp", location: "EU" }, { server_name: "Belobra", server_type: "pvp", location: "EU" }, { server_name: "Bona", server_type: "pvp", location: "EU" }, { server_name: "Calmera", server_type: "pvp", location: "EU" }, { server_name: "Celesta", server_type: "pvp", location: "EU" }, { server_name: "Concorda", server_type: "pvp", location: "EU" }, { server_name: "Cosera", server_type: "pvp", location: "EU" }, { server_name: "Damora", server_type: "pvp", location: "EU" }, { server_name: "Descubra", server_type: "pvp", location: "EU" }, { server_name: "Dia", server_type: "pvp", location: "EU" }, { server_name: "Duna", server_type: "pvp", location: "EU" }, { server_name: "Elera", server_type: "pvp", location: "EU" }, { server_name: "Epoca", server_type: "pvp", location: "EU" }, { server_name: "Esmera", server_type: "pvp", location: "EU" }, { server_name: "Faluna", server_type: "pvp", location: "EU" }, { server_name: "Famosa", server_type: "pvp", location: "EU" }, { server_name: "Fera", server_type: "pvp", location: "EU" }, { server_name: "Ferobra", server_type: "pvp", location: "EU" }, { server_name: "Firmera", server_type: "pvp", location: "EU" }, { server_name: "Funera", server_type: "pvp", location: "EU" }, { server_name: "Furia", server_type: "pvp", location: "EU" }, { server_name: "Garnera", server_type: "pvp", location: "EU" }, { server_name: "Gentebra", server_type: "pvp", location: "EU" }, { server_name: "Gladera", server_type: "pvp", location: "EU" }, { server_name: "Gravitera", server_type: "pvp", location: "EU" }, { server_name: "Grimera", server_type: "pvp", location: "EU" }, { server_name: "Harmonia", server_type: "pvp", location: "EU" }, { server_name: "Honbra", server_type: "pvp", location: "EU" }, { server_name: "Impulsa", server_type: "pvp", location: "EU" }, { server_name: "Inabra", server_type: "pvp", location: "EU" }, { server_name: "Issobra", server_type: "pvp", location: "EU" }, { server_name: "Jacabra", server_type: "pvp", location: "EU" }, { server_name: "Javibra", server_type: "pvp", location: "EU" }, { server_name: "Jonera", server_type: "pvp", location: "EU" }, { server_name: "Kalibra", server_type: "pvp", location: "EU" }, { server_name: "Kardera", server_type: "pvp", location: "EU" }, { server_name: "Kenora", server_type: "pvp", location: "EU" }, { server_name: "Libertabra", server_type: "pvp", location: "EU" }, { server_name: "Lobera", server_type: "pvp", location: "EU" }, { server_name: "Luminera", server_type: "pvp", location: "EU" }, { server_name: "Lutabra", server_type: "pvp", location: "EU" }, { server_name: "Menera", server_type: "pvp", location: "EU" }, { server_name: "Mitigera", server_type: "pvp", location: "EU" }, { server_name: "Monza", server_type: "pvp", location: "EU" }, { server_name: "Nefera", server_type: "pvp", location: "EU" }, { server_name: "Noctera", server_type: "pvp", location: "EU" }, { server_name: "Ocera", server_type: "pvp", location: "EU" }, { server_name: "Ombra", server_type: "pvp", location: "EU" }, { server_name: "Pacera", server_type: "pvp", location: "EU" }, { server_name: "Peloria", server_type: "pvp", location: "EU" }, { server_name: "Premia", server_type: "pvp", location: "EU" }, { server_name: "Pyra", server_type: "pvp", location: "EU" }, { server_name: "Quelibra", server_type: "pvp", location: "EU" }, { server_name: "Quintera", server_type: "pvp", location: "EU" }, { server_name: "Refugia", server_type: "pvp", location: "EU" }, { server_name: "Relania", server_type: "pvp", location: "EU" }, { server_name: "Secura", server_type: "pvp", location: "EU" }, { server_name: "Serdebra", server_type: "pvp", location: "EU" }, { server_name: "Solidera", server_type: "pvp", location: "EU" }, { server_name: "Talonera", server_type: "pvp", location: "EU" }, { server_name: "Tortura", server_type: "pvp", location: "EU" }, { server_name: "Unica", server_type: "pvp", location: "EU" }, { server_name: "Utobra", server_type: "pvp", location: "EU" }, { server_name: "Venebra", server_type: "pvp", location: "EU" }, { server_name: "Vita", server_type: "pvp", location: "EU" }, { server_name: "Vunira", server_type: "pvp", location: "EU" }, { server_name: "Wadira", server_type: "pvp", location: "EU" }, { server_name: "Wintera", server_type: "pvp", location: "EU" }, { server_name: "Xandebra", server_type: "pvp", location: "EU" }, { server_name: "Yonabra", server_type: "pvp", location: "EU" }, { server_name: "Zuna", server_type: "pvp", location: "EU" }, { server_name: "Zunera", server_type: "pvp", location: "EU" }, // Servidores No-PvP - EU { server_name: "Asteria", server_type: "no-pvp", location: "EU" }, { server_name: "Belluma", server_type: "no-pvp", location: "EU" }, { server_name: "Calva", server_type: "no-pvp", location: "EU" }, { server_name: "Castela", server_type: "no-pvp", location: "EU" }, { server_name: "Collabra", server_type: "no-pvp", location: "EU" }, { server_name: "Estela", server_type: "no-pvp", location: "EU" }, ]; export async function seedServers() { console.log("🌱 Iniciando seed de servidores...\n"); let inserted = 0; let skipped = 0; for (const server of TIBIA_SERVERS) { try { // Verificar se já existe const existing = await query<{ server_id: number }>( "SELECT server_id FROM servers WHERE server_name = $1", [server.server_name], ); if (existing.rows.length > 0) { skipped++; continue; } // Inserir servidor await query( `INSERT INTO servers (server_name, server_type, location, is_active) VALUES ($1, $2, $3, $4)`, [server.server_name, server.server_type, server.location, true], ); inserted++; } catch (error) { console.error( `❌ Erro ao inserir servidor ${server.server_name}:`, error, ); } } console.log( `✅ Seed concluído: ${inserted} servidores inseridos, ${skipped} já existiam\n`, ); } // Se executado diretamente if (require.main === module) { seedServers() .then(() => { console.log("🎉 Seed finalizado com sucesso!"); process.exit(0); }) .catch((error) => { console.error("❌ Erro fatal no seed:", error); process.exit(1); }); }