import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger"
import { IsEnum, IsInt, IsOptional, IsString } from "class-validator"

export enum DocumentType {
  PASSPORT = "passport",
  DRIVING_LICENCE = "driving-license",
  NATIONAL_ID = "national-id",
  CV_RESUME = "cv-resume",
  BACKGROUND_CHECK = "background-check",
  OTHERS = "others/",
}

export enum DocumentStatus {
  PENDING = "pending",
  APPROVED = "approved",
  REJECTED = "rejected",
}

export class CreateIdProofDto {
  @ApiProperty({ example: 1, description: "Team Member ID" })
  @IsInt()
  @IsOptional()
  team_member_id: number

  @ApiPropertyOptional({
    example: "passport",
    description: "ID document type",
    // enum: DocumentType,
  })
  @IsOptional()
  // @IsEnum(DocumentType)
  document_type?: string

  @ApiPropertyOptional({
    example: "ABC123456",
    description: "ID document number",
  })
  @IsOptional()
  @IsString()
  document_number?: string

  @ApiPropertyOptional({
    example: "2023-01-01",
    description: "Expiry date of the ID document",
  })
  @IsOptional()
  @IsString()
  expiry_date?: string

  @ApiPropertyOptional({
    example: "aadhar.pdf",
    description: "File name or URL of the ID document",
  })
  @IsOptional()
  @IsString()
  document_files?: string

  @ApiPropertyOptional({
    example: "pending",
    description: "Verification status",
    enum: DocumentStatus,
  })
  @IsOptional()
  @IsEnum(DocumentStatus)
  document_status?: string

  @ApiPropertyOptional({
    example: "Document is expired or not clear",
  })
  @IsOptional()
  @IsString()
  rejection_reason?: string
}
