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

/**
 * Resposta de conta. Existe para garantir a regra de `BE-4`: a senha e o
 * hash **nunca** saem da API. Montar a resposta a partir desta classe, e
 * nunca devolver o modelo do Prisma direto — é assim que `passwordHash`
 * vazaria sem ninguém notar.
 */
export class AccountResponse {
  @ApiProperty()
  id!: string;

  @ApiProperty()
  email!: string;

  @ApiProperty()
  displayName!: string;

  @ApiProperty()
  createdAt!: Date;

  static from(user: {
    id: string;
    email: string;
    displayName: string;
    createdAt: Date;
  }): AccountResponse {
    return {
      id: user.id,
      email: user.email,
      displayName: user.displayName,
      createdAt: user.createdAt,
    };
  }
}
