import { IsNotEmpty, IsOptional, IsUUID, IsNumber, IsEnum } from 'class-validator';
import { AgeGroup } from '../../../entities/activity-pricing.entity';

export class CreateActivityPricingDto {
  @IsUUID()
  @IsNotEmpty()
  destination_id: string;

  @IsUUID()
  @IsNotEmpty()
  activity_id: string;

  @IsUUID()
  @IsOptional()
  ticket_id?: string;

  @IsEnum(AgeGroup)
  age_group: AgeGroup;

  @IsUUID()
  @IsNotEmpty()
  currency_id: string;

  @IsNumber()
  @IsOptional()
  default_price?: number;

  @IsNumber()
  @IsOptional()
  season_1_price?: number;

  @IsNumber()
  @IsOptional()
  season_2_price?: number;

  @IsNumber()
  @IsOptional()
  season_3_price?: number;

  @IsNumber()
  @IsOptional()
  season_4_price?: number;

  @IsNumber()
  @IsOptional()
  season_5_price?: number;

  // Floor pricing — see ActivityPricingEntity. NULL = no floor for
  // that season; below-floor selling on quote/booking saves routes
  // to a Change Request unless the user has BOOKING_APPROVAL:edit.

  @IsNumber()
  @IsOptional()
  floor_default_price?: number;

  @IsNumber()
  @IsOptional()
  floor_season_1_price?: number;

  @IsNumber()
  @IsOptional()
  floor_season_2_price?: number;

  @IsNumber()
  @IsOptional()
  floor_season_3_price?: number;

  @IsNumber()
  @IsOptional()
  floor_season_4_price?: number;

  @IsNumber()
  @IsOptional()
  floor_season_5_price?: number;
}
