import { query, queryOne, run } from '../../../../lib/db'; import { getServerSession } from 'next-auth/next'; import { authOptions } from '../../auth/[...nextauth]/route'; import { nanoid } from 'nanoid'; export async function POST(request) { try { const session = await getServerSession(authOptions); if (!session) { return Response.json({ success: false, error: 'Unauthorised-tc' }, { status: 401 }); } const { name, userId } = await request.json(); if (!name || name.trim() === '') { return Response.json({ success: false, error: 'Team name is required' }); } // Verify the requesting user matches the userId if (session.user.id !== userId) { return Response.json({ success: false, error: 'User ID mismatch' }, { status: 403 }); } // Generate a unique team code (6 characters) const teamCode = nanoid(6).toUpperCase(); // Insert the new team const result = await run( 'INSERT INTO teams (name, code, created_by) VALUES (?, ?, ?)', [name, teamCode, userId] ); if (!result || !result.lastID) { return Response.json({ success: false, error: 'Failed to create team' }); } // Update the user's team_id await run( 'UPDATE users SET team_id = ? WHERE id = ?', [result.lastID, userId] ); return Response.json({ success: true, teamId: result.lastID, teamCode }); } catch (error) { console.error('Create team error:', error); return Response.json({ success: false, error: 'Failed to create team: ' + error.message }); } }