import {  NextResponse } from 'next/server';
import { typedQuery } from '@/backend/utils/typedQuery';

type CardFeatureRow = {
  creditcardsname: string;
  feature: string;
};

type Bank = {
  bankcode: string;
  bankname: string;
};

export async function GET() {
  try {
    // Get features by card where useascategory = 0
    const [featureRows] = await typedQuery<CardFeatureRow>(
      `
      SELECT cts.cardtypedesc AS feature, cc.creditcardsname
      FROM creditcardstypes ct
      INNER JOIN creditcards cc ON cc.idcreditcards = ct.idcreditcards
      INNER JOIN cardtypes cts ON cts.idcardtype = ct.idcardtype
      WHERE IFNULL(cts.useascategory, 0) = 0
      `
    );

    // Get all banks
    const [bankRows] = await typedQuery<Bank>(
      `
      SELECT bankcode, bankname FROM banks WHERE lactive=1 ORDER BY bankname ASC
      `
    );

    return NextResponse.json({
      success: true,
      featuresByCard: featureRows,
      banks: bankRows,
    });
  } catch (error: unknown) {
    console.error('API error:', error);
    return NextResponse.json(
      { success: false, error: error instanceof Error ? error.message : 'Unknown error' },
      { status: 500 }
    );
  }
}
