import { createClient } from '@/lib/supabase/server' import { PrismaClient } from '@prisma/client' import { NextRequest, NextResponse } from 'next/server' const prisma = new PrismaClient() export async function GET(req: NextRequest) { const supabase = await createClient() const { data: { user } } = await supabase.auth.getUser() if (!user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } try { const dbUser = await prisma.user.findUnique({ where: { supabaseId: user.id }, include: { channels: true, userPreferences: true, }, }) if (!dbUser) { return NextResponse.json({ error: 'User not found' }, { status: 404 }) } return NextResponse.json(dbUser, { status: 200 }) } catch (error) { console.error('Error fetching user:', error) return NextResponse.json( { error: 'Failed to fetch user' }, { status: 500 } ) } } export async function PATCH(req: NextRequest) { const supabase = await createClient() const { data: { user } } = await supabase.auth.getUser() if (!user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } try { const body = await req.json() const { displayName, bio, avatarUrl, bannerUrl } = body const dbUser = await prisma.user.update({ where: { supabaseId: user.id }, data: { displayName, bio, avatarUrl, bannerUrl, }, include: { channels: true, }, }) return NextResponse.json(dbUser, { status: 200 }) } catch (error) { console.error('Error updating user:', error) return NextResponse.json( { error: 'Failed to update user' }, { status: 500 } ) } }