import { Injectable } from '@nestjs/common';
import { InjectConnection } from '@nestjs/typeorm';
import { Connection } from 'typeorm';

@Injectable()
export class PhrRecordService {
  constructor(@InjectConnection() private readonly connection: Connection) { }

  async createRecord(abhaAddress: string, userId: number): Promise<any> {
    try {

      const existingRecord = await this.connection.query(
        `SELECT * FROM abha_address_user_id_mapping WHERE abha_address = ? AND user_id = ?`,
        [abhaAddress, userId]
      );

      if (existingRecord.length <= 0) {
        const result = await this.connection.query(
          `INSERT INTO abha_address_user_id_mapping (abha_address, user_id) VALUES (?, ?)`,
          [abhaAddress, userId]
        );

        return {
          status: process.env.SUCCESS_STATUS_ABHA_ADDRESS_MAPPING,
          message: process.env.SUCCESS_MESSAGE_ABHA_ADDRESS_MAPPING,
          data: {
            id: result.insertId,
            abhaAddress,
            userId,
          },
        };
      } else {
        return {
          status: process.env.SUCCESS_STATUS_ABHA_ADDRESS_MAPPING,
          message: process.env.SUCCESS_MESSAGE_ABHA_ADDRESS_MAPPING,
          data: {
            id: existingRecord[0].id,
            abhaAddress,
            userId,
          },
        }
      }


    } catch (error) {
      console.error(error);
      return {
        status: process.env.ERROR_STATUS_ABHA_ADDRESS_MAPPING,
        message: process.env.ERROR_MESSAGE_ABHA_ADDRESS_MAPPING,
        error: error.message,
      };
    }
  }
}
