import {
  IsString,
  IsOptional,
  IsInt,
  Min,
  Max,
  IsISO8601,
  IsObject,
} from 'class-validator';
import { Type } from 'class-transformer';

export class QueryReleaseNoteDto {
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  @Min(1)
  page?: number = 1;

  @IsOptional()
  @Type(() => Number)
  @IsInt()
  @Min(1)
  @Max(100)
  pageSize?: number = 20;

  @IsOptional()
  @IsString()
  keyword?: string;
}

export class CreateReleaseNoteDto {
  @IsString()
  version: string;

  @IsString()
  title: string;

  @IsOptional()
  @IsObject()
  content?: Record<string, unknown>;

  @IsISO8601()
  releasedAt: string;
}
