Spaces:
Build error
Build error
| import { NextRequest, NextResponse } from "next/server"; | |
| import ZAI from "z-ai-web-dev-sdk"; | |
| import { db } from "@/lib/db"; | |
| const PET_TYPES: Record<string, { name: string; engagementBoost: number }> = { | |
| 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<string, unknown> = { 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<string, unknown> = {}; | |
| 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 }); | |
| } | |
| } |