Files
AnchorOS/app/api/availability/staff/route.ts
Marco Gallegos accf0e81e1 feat: Implementar sistema de disponibilidad y corregir errores de kiosko
- Agregar API routes de disponibilidad (blocks, staff, time-slots, staff-unavailable)
- Corregir autenticación en availability routes (reemplazar get_current_user_role con validación Bearer)
- Corregir DELETE en blocks/route.ts para usar query parameters
- Corregir errores de tipos en kiosk routes (supabase → supabaseAdmin)
- Agregar layout raíz de Next.js y estilos globales
- Agregar componente Badge UI
- Corregir tipos TypeScript en WalkInFlow
- Instalar dependencias necesarias (@radix-ui/*, class-variance-authority, etc)
- Agregar migraciones de disponibilidad
2026-01-16 15:12:57 -06:00

47 lines
1.3 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import { supabaseAdmin } from '@/lib/supabase/client'
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url)
const locationId = searchParams.get('location_id')
const startTime = searchParams.get('start_time_utc')
const endTime = searchParams.get('end_time_utc')
if (!locationId || !startTime || !endTime) {
return NextResponse.json(
{ error: 'Missing required parameters: location_id, start_time_utc, end_time_utc' },
{ status: 400 }
)
}
const { data: staff, error: staffError } = await supabaseAdmin.rpc('get_available_staff', {
p_location_id: locationId,
p_start_time_utc: startTime,
p_end_time_utc: endTime
})
if (staffError) {
return NextResponse.json(
{ error: staffError.message },
{ status: 400 }
)
}
return NextResponse.json({
success: true,
staff: staff || [],
location_id: locationId,
start_time_utc: startTime,
end_time_utc: endTime,
available_count: staff?.length || 0
})
} catch (error) {
console.error('Available staff GET error:', error)
return NextResponse.json(
{ error: 'Internal server error' },
{ status: 500 }
)
}
}