import { ApiProperty } from "@nestjs/swagger";
import { AdminUserRole } from "@prisma/client";

export class AdminUserPublicDto {
  @ApiProperty({ example: "adu_01jx…" })
  id!: string;

  @ApiProperty({ example: "operador@novasis.com" })
  email!: string;

  @ApiProperty({ example: "María Pereira" })
  name!: string;

  @ApiProperty({ enum: AdminUserRole, example: AdminUserRole.operator })
  role!: AdminUserRole;
}

export class AuthResponseDto {
  @ApiProperty({
    description: "JWT corto para usar como `Authorization: Bearer …` en cada request.",
  })
  accessToken!: string;

  @ApiProperty({ description: "Refresh token de larga duración (uso único)." })
  refreshToken!: string;

  @ApiProperty({ example: 900, description: "Vida del accessToken en segundos." })
  expiresIn!: number;

  @ApiProperty({ type: AdminUserPublicDto })
  user!: AdminUserPublicDto;
}
