import { ApiProperty } from "@nestjs/swagger"

export class ProjectManagementMetaDto {
  @ApiProperty({
    description: "Total hours",
    example: 1250.5,
  })
  total_hours: number

  @ApiProperty({
    description: "Total cost",
    example: 125000.75,
  })
  total_cost: number

  @ApiProperty({
    description: "Total clients",
    example: 15,
  })
  total_clients: number

  @ApiProperty({
    description: "Total projects",
    example: 45,
  })
  total_projects: number

  @ApiProperty({
    description: "Total employees",
    example: 25,
  })
  total_employees: number
}

export class ProjectManagerDto {
  @ApiProperty({
    description: "Project manager first name",
    example: "John",
  })
  project_managed_by_first_name: string

  @ApiProperty({
    description: "Project manager last name",
    example: "Doe",
  })
  project_managed_by_last_name: string

  @ApiProperty({
    description: "Total planning projects",
    example: 3,
  })
  total_planning_projects: number

  @ApiProperty({
    description: "Total in progress projects",
    example: 10,
  })
  total_in_progress_projects: number

  @ApiProperty({
    description: "Total completed projects",
    example: 5,
  })
  total_completed_projects: number

  @ApiProperty({
    description: "Total on hold projects",
    example: 2,
  })
  total_on_hold_projects: number
}

export class ProjectManagementResponseDto {
  @ApiProperty({
    description: "Meta information with totals",
    type: ProjectManagementMetaDto,
  })
  meta: ProjectManagementMetaDto

  @ApiProperty({
    description: "List of project managers with their project counts",
    type: [ProjectManagerDto],
  })
  data: ProjectManagerDto[]
}
