import { ApiProperty, PartialType } from '@nestjs/swagger';
import { IsNotEmpty, IsString, Matches, MaxLength } from 'class-validator';

// 일정 카테고리 생성 DTO
export class CreateScheduleCategoryDto {
  @ApiProperty({ description: '카테고리 이름', example: '회의' })
  @IsString()
  @IsNotEmpty({ message: '카테고리 이름을 입력해 주세요.' })
  @MaxLength(40, { message: '카테고리 이름은 최대 40자입니다.' })
  label!: string;

  @ApiProperty({ description: '카테고리 색(hex)', example: '#1d4ed8' })
  @IsString()
  @Matches(/^#[0-9a-fA-F]{6}$/, {
    message: '색상은 #RRGGBB 형식의 hex 값이어야 합니다.',
  })
  color!: string;
}

// 일정 카테고리 수정 DTO — 생성 DTO 의 부분 집합
export class UpdateScheduleCategoryDto extends PartialType(
  CreateScheduleCategoryDto,
) {}
