/* eslint-disable -- temporary disable for development/testing purposes */

import { NextRequest, NextResponse } from 'next/server';
import { getDBConnection } from '@/lib/db';

export async function POST(req: NextRequest) {
  try {
    // Parse JSON body
    const body = await req.json();

    const { groupName, createdBy, companyId, memberIds } = body;

    // Basic validation
    if (
      !groupName ||
      !createdBy ||
      !companyId ||
      !memberIds ||
      !Array.isArray(memberIds) ||
      memberIds.length < 2
    ) {
      return NextResponse.json(
        { error: 'Missing or invalid fields. Ensure groupName, createdBy, companyId, and at least 2 memberIds.' },
        { status: 400 }
      );
    }

    // Connect to database
    const connection = await getDBConnection();

    // Insert new group (assuming your table structure)
    const [groupResult]: any = await connection.execute(
        'INSERT INTO `groups` (group_name, created_by, company_id, created_at, patient_chat) VALUES (?, ?, ?, NOW(), ?)',
        [groupName, createdBy, companyId, 'no']
      );

    const groupId = groupResult.insertId;

    // Insert group members
    for (const memberId of memberIds) {
      await connection.execute(
        'INSERT INTO group_members (group_id, user_id, joined_at) VALUES (?, ?, NOW())',
        [groupId, memberId]
      );
    }

    await connection.end();

    return NextResponse.json({ success: true, groupId });
  } catch (error) {
    // console.error('Create Group Error:', error);
    return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
  }
}
