import { NextRequest, NextResponse } from "next/server"; import ZAI from "z-ai-web-dev-sdk"; import { db } from "@/lib/db"; const PET_TYPES: Record = { dog: { name: "Perro", engagementBoost: 35 }, cat: { name: "Gato", engagementBoost: 28 }, bird: { name: "Pajaro", engagementBoost: 15 }, rabbit: { name: "Conejo", engagementBoost: 22 }, hamster: { name: "Hamster", engagementBoost: 18 } }; export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url); const characterId = searchParams.get("characterId"); const where: Record = { isActive: true }; if (characterId) where.characterId = characterId; const pets = await db.pet.findMany({ where, orderBy: { createdAt: "desc" } }); return NextResponse.json({ success: true, pets, petTypes: PET_TYPES }); } catch { return NextResponse.json({ success: false, error: "Error" }, { status: 500 }); } } export async function POST(request: NextRequest) { try { const body = await request.json(); const { name, type, breed, personality, characterId } = body; if (!name) return NextResponse.json({ success: false, error: "Nombre requerido" }, { status: 400 }); const petType = PET_TYPES[type] || PET_TYPES.dog; const pet = await db.pet.create({ data: { name, type: type || "dog", breed: breed || null, personality: personality || null, characterId: characterId || null, traits: JSON.stringify({ engagementBoost: petType.engagementBoost }) } }); return NextResponse.json({ success: true, pet, engagementBoost: petType.engagementBoost }); } catch { return NextResponse.json({ success: false, error: "Error" }, { status: 500 }); } } export async function PUT(request: NextRequest) { try { const body = await request.json(); const { id, personality, isActive } = body; if (!id) return NextResponse.json({ success: false, error: "ID requerido" }, { status: 400 }); const data: Record = {}; if (personality) data.personality = personality; if (isActive !== undefined) data.isActive = isActive; const pet = await db.pet.update({ where: { id }, data }); return NextResponse.json({ success: true, pet }); } catch { return NextResponse.json({ success: false, error: "Error" }, { status: 500 }); } } export async function DELETE(request: NextRequest) { try { const { searchParams } = new URL(request.url); const id = searchParams.get("id"); if (!id) return NextResponse.json({ success: false, error: "ID requerido" }, { status: 400 }); await db.pet.update({ where: { id }, data: { isActive: false } }); return NextResponse.json({ success: true }); } catch { return NextResponse.json({ success: false, error: "Error" }, { status: 500 }); } }