import { Expose, Transform } from 'class-transformer';

export class {{pascalCase name}}Resource {
  @Expose() id: number;

  @Expose({ name: 'created_at' })
  @Transform(({ value }) => {
    if (!value) return null;
    const date = new Date(value);
    return isNaN(date.getTime()) ? value : date.toISOString().split('T')[0];
  })
  createdAt: Date;

  @Expose({ name: 'updated_at' })
  @Transform(({ value }) => {
    if (!value) return null;
    const date = new Date(value);
    return isNaN(date.getTime()) ? value : date.toISOString().split('T')[0];
  })
  updatedAt: Date;

  constructor(partial: Partial<any>) {
    Object.assign(this, partial);
  }
}