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

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

export async function GET(req: NextRequest) {
  const { searchParams } = new URL(req.url);
  const role = searchParams.get('role');
  const companyId = searchParams.get('companyId');

 

  if (!role || !companyId) {
    return NextResponse.json({ error: 'Missing role or companyId' }, { status: 400 });
  }

  try {
    const connection = await getDBConnection();

    let query = '';
    let params: any[] = [];

    if (role === 'chat') {
      // role is either manager or doctor
      query = `SELECT * FROM users WHERE (role = 'manager' OR role = 'doctor') AND company_id = ?`;
      params = [companyId];
    } else if (role === 'channel') {
      // no role filter, just company_id
      query = `SELECT * FROM users WHERE company_id = ?`;
      params = [companyId];
    } else if (role === 'patient') {
      // role = 'user' and company_id
      query = `SELECT * FROM users WHERE role = 'user' AND company_id = ?`;
      params = [companyId];
    } else {
      // If role is something else, fallback or return error
      return NextResponse.json({ error: 'Invalid role' }, { status: 400 });
    }

    const [userRows]: any = await connection.execute(query, params);
    await connection.end();

    return NextResponse.json({ users: userRows });
  } catch (error) {
    // console.error(error);
    return NextResponse.json({ error: 'Failed to fetch users' }, { status: 500 });
  }
}
