export class NIDAAPIService {
  static async verifyIdentity(
    nidaNumber: string,
    fullName: string
  ): Promise<{
    verified: boolean;
    face_match_percentage?: number;
    error?: string;
  }> {
    if (process.env.NIDA_MOCK === 'true' || process.env.NODE_ENV === 'test') {
      if (nidaNumber.startsWith('000')) {
        return { verified: false, error: 'Mock: invalid NIDA' };
      }
      return {
        verified: true,
        face_match_percentage: 98.5,
      };
    }

    try {
      const response = await fetch(`${process.env.NIDA_API_URL}/verify`, {
        method: 'POST',
        headers: {
          Authorization: `Bearer ${process.env.NIDA_API_KEY}`,
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({
          national_id: nidaNumber,
          full_name: fullName,
          require_face_match: true,
        }),
      });

      const data = (await response.json()) as {
        status?: string;
        face_match_percentage?: number;
        error_message?: string;
      };

      if (data.status === 'verified') {
        return {
          verified: true,
          face_match_percentage: data.face_match_percentage,
        };
      }
      return {
        verified: false,
        error: data.error_message || 'Verification failed',
      };
    } catch (error) {
      console.error('NIDA API error:', error);
      return {
        verified: false,
        error: 'NIDA API unavailable. Please try again later.',
      };
    }
  }
}
