import { BaseStatusDto } from 'src/core/modules/infrastructure/dto/base-status.dto';
import { SeasonPeriodEntity } from '../../domain/entities/season-period.entity';
import { EnumDays } from '../../constants';
import { ApiProperty } from '@nestjs/swagger';
import { IsObject, ValidateIf, ValidateNested } from 'class-validator';
import { Exclude } from 'class-transformer';
import { SeasonTypeModel } from 'src/modules/season-related/season-type/data/models/season-type.model';
import { SeasonPeriodHolidayDto } from './season-period-holiday.dto';
import { ItemRateModel } from 'src/modules/item-related/item-rate/data/models/item-rate.model';

export class UpdateSeasonPeriodItemDto
  extends BaseStatusDto
  implements SeasonPeriodEntity
{
  @Exclude()
  season_type: SeasonTypeModel;

  @Exclude()
  start_date: Date;

  @Exclude()
  end_date: Date;

  @Exclude()
  days: EnumDays[];

  @Exclude()
  holidays: SeasonPeriodHolidayDto[];

  @Exclude()
  holiday_name: string;

  @ApiProperty({
    type: [Object],
    example: [
      {
        item: {
          id: 'uuid',
          name: 'Entrance Ticket',
        },
        price: 10000,
      },
    ],
  })
  item_rates: ItemRateModel[];
}
