import { NextRequest, NextResponse } from 'next/server' import { z } from 'zod' const createPrayerSchema = z.object({ title: z.string().min(1).max(200), description: z.string().min(1).max(1000), category: z.enum(['personal', 'family', 'health', 'work', 'ministry', 'world']), author: z.string().optional().default('Anonim') }) export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) const category = searchParams.get('category') const limit = parseInt(searchParams.get('limit') || '20') // Mock prayer data for now // TODO: Replace with actual database queries const allPrayers = [ { id: '1', title: 'Rugăciune pentru vindecare', description: 'Te rog să te rogi pentru tatăl meu care se află în spital. Are nevoie de vindecarea lui Dumnezeu.', category: 'health', author: 'Maria P.', timestamp: new Date(Date.now() - 2 * 60 * 60 * 1000), prayerCount: 23, isPrayedFor: false, }, { id: '2', title: 'Îndrumarea lui Dumnezeu în carieră', description: 'Caut direcția lui Dumnezeu pentru următorul pas în cariera mea. Te rog să te rogi pentru claritate și pace.', category: 'work', author: 'Alexandru M.', timestamp: new Date(Date.now() - 5 * 60 * 60 * 1000), prayerCount: 15, isPrayedFor: true, }, { id: '3', title: 'Unitatea în familia noastră', description: 'Rugați-vă pentru restaurarea relațiilor în familia noastră și pentru iertarea reciprocă.', category: 'family', author: 'Anonim', timestamp: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000), prayerCount: 41, isPrayedFor: false, }, { id: '4', title: 'Pentru misionarii din Africa', description: 'Rugați-vă pentru protecția și proviziunea pentru misionarii noștri care lucrează în Africa.', category: 'ministry', author: 'Pavel R.', timestamp: new Date(Date.now() - 6 * 60 * 60 * 1000), prayerCount: 12, isPrayedFor: false, }, { id: '5', title: 'Pace în Ucraina', description: 'Să ne rugăm pentru pace și protecție pentru poporul ucrainean în aceste timpuri dificile.', category: 'world', author: 'Comunitatea', timestamp: new Date(Date.now() - 12 * 60 * 60 * 1000), prayerCount: 89, isPrayedFor: true, }, { id: '6', title: 'Trecerea prin depresie', description: 'Am nevoie de rugăciuni pentru a trece prin această perioadă grea de depresie și anxietate.', category: 'personal', author: 'Anonim', timestamp: new Date(Date.now() - 8 * 60 * 60 * 1000), prayerCount: 34, isPrayedFor: false, } ] let filteredPrayers = allPrayers // Apply category filter if (category && category !== 'all') { filteredPrayers = allPrayers.filter(prayer => prayer.category === category) } // Apply limit filteredPrayers = filteredPrayers.slice(0, limit) // Sort by timestamp (newest first) filteredPrayers.sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime()) return NextResponse.json({ success: true, prayers: filteredPrayers, total: filteredPrayers.length }) } catch (error) { console.error('Error fetching prayers:', error) return NextResponse.json( { success: false, error: 'Failed to fetch prayers', prayers: [] }, { status: 500 } ) } } export async function POST(request: NextRequest) { try { const body = await request.json() const validatedData = createPrayerSchema.parse(body) // Create new prayer object const newPrayer = { id: Date.now().toString(), title: validatedData.title, description: validatedData.description, category: validatedData.category, author: validatedData.author, timestamp: new Date(), prayerCount: 0, isPrayedFor: false, } // TODO: Save to database // For now, just return the created prayer console.log('New prayer created:', newPrayer) return NextResponse.json({ success: true, prayer: newPrayer, message: 'Prayer request submitted successfully' }, { status: 201 }) } catch (error) { console.error('Error creating prayer:', error) if (error instanceof z.ZodError) { return NextResponse.json( { success: false, error: 'Invalid prayer data', details: error.errors }, { status: 400 } ) } return NextResponse.json( { success: false, error: 'Failed to create prayer request' }, { status: 500 } ) } }