import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';

export class DoctorDto {
  @ApiProperty({ example: 'Dr. developer N' })
  doctor_name: string;

  @ApiProperty({ example: 335 })
  doctor_id: number;

  @ApiProperty({ example: 'IMG_0051.jpeg_1737956397066' })
  image: string;

  @ApiProperty({ example: 1 })
  hospital_id: number;

  @ApiProperty({ example: 'Plenome test' })
  hospital_name: string;

  @ApiProperty({ example: 'Chennai Taramani, chennai, tamilnadu - 600042' })
  address: string;

  @ApiProperty({ example: '10' })
  experience: string;

  @ApiProperty({ example: 'MBBS MD' })
  qualification: string;

  @ApiProperty({ example: 'spec123' })
  doctor_designation: string;

  @ApiProperty({ example: 'Arabic,Bosnian,English,Tamil' })
  languages_known: string;

  @ApiProperty({ example: '3' })
  rating: string;

  @ApiProperty({ 
    example: 'cardiologist,dermodology,Neurologist,Neurosurgery,Oncologist,Retina Specialist' 
  })
  specialist_names: string;

  @ApiProperty({ example: '04:00 AM - 10:00 PM' })
  timings_shift_id: string;

  @ApiProperty({ example: 1.1 })
  amount: number;
}

export class CountDto {
    @ApiProperty({ example: '10' })
    details: DoctorDto[];

    @ApiProperty({ example: '10' })
    total: number;

}


export class PastAppointmentDto {
  @ApiProperty()
  id: number;

  @ApiProperty()
  module: string;

  @ApiProperty()
  appointment_id: string;

  @ApiProperty()
  doctor_id: number;

  @ApiProperty()
  doctor_name: string;

  @ApiProperty()
  doctor_gender: string;

  @ApiProperty()
  image: string;

  @ApiProperty()
  case_sheet_document: string;

  @ApiProperty()
  hospital_id: number;

  @ApiProperty()
  hospital_name: string;

  @ApiProperty()
  address: string;

  @ApiProperty()
  date: string;

  @ApiProperty()
  time: string;

  @ApiProperty()
  appointment_status: string;

  @ApiProperty()
  appointment_status_id: number;

  @ApiProperty()
  color_code: string;

  @ApiProperty()
  patient_id: number;

  @ApiProperty()
  specialist_names: string;
}

export class PastCountDto {
  @ApiProperty({ example: '10' })
  details: PastAppointmentDto[];

  @ApiProperty({ example: '10' })
  total: number;

}



export class UpcomingAppointmentDto {
  @ApiProperty()
  id: number;

  @ApiProperty()
  module: string;

  @ApiProperty()
  appointment_id: string;

  @ApiPropertyOptional()
  doctor_id?: number;

  @ApiPropertyOptional()
  image?: string;

  @ApiPropertyOptional()
  doctor_name?: string;

  @ApiPropertyOptional()
  doctor_gender?: string;

  @ApiProperty()
  hospital_id: number;

  @ApiProperty()
  hospital_name: string;

  @ApiProperty()
  address: string;

  @ApiProperty()
  date: string;

  @ApiProperty()
  time: string;

  @ApiProperty()
  appointment_status: string;

  @ApiProperty()
  appointment_status_id: number;

  @ApiProperty()
  color_code: string;

  @ApiProperty()
  patient_id: number;

  @ApiProperty()
  live_consult: string;

  @ApiPropertyOptional()
  global_shift_id?: number;

  @ApiPropertyOptional()
  shift_id?: number;

  @ApiPropertyOptional()
  specialist_names?: string;
}

export class UpcomingCountDto {
  @ApiProperty({ example: '10' })
  details: UpcomingAppointmentDto[];

  @ApiProperty({ example: '10' })
  total: number;

}