

export class SaveActivityContractDetails {
    activityContract: ActivityContract;
    activityContractDetails: ActivityDetails[];
    privateTransfer: ActivityPrivateTransfer[];
    sharedTransfer: ActivitySharedTransfer;
    incNationalityCodes: string[] | null;
    excNationalityCodes: string[] | null;
    seasonIdsForRateDates: string[] | null;
    datesForRates: DateRange[];
    slotDetails: SlotDetails[] | null;
    activityCancellationDetails: ActivityCancellationDetails[] | null;
}

export class ActivityPrivateTransfer {
    vehicle_id: string;
    vehicle_occupancy: string;
    vehicle_supplier_id: string;
    rate: number;
}
export class ActivitySharedTransfer {
    vehicle_supplier_id: string;
    adult_rate: number;
    senior_rate: number;
    youth_rate: number;
    child_rate: number;
}

export class Specific {
    specificTimeSlot: DateRange[];
    specificSlotRateRange: RateRange;
    activityPaxRate: ActivityPaxRate;
    activityVehicleRate: ActivityVehicleRate;
}

export class SlotDetails {
    slot: Slot[];
    applicableDays: string;
    rateRange: RateRange | null;
    activityPaxRate: ActivityPaxRate | null;
    activityVehicleRate: ActivityVehicleRate[] | null;
    activityCancellationDetails: ActivityCancellationDetails[] | null;
}
export class Slot {
    slotId: string;
    is_private_transfer: boolean;
    is_shared_transfer: boolean;
    is_without_transfer: boolean;
}


export class ActivityContract {
    activity_contract_id: string | null;
    org_id: string | null;
    supplier_id: string;
    activity_id: string | null;
    currency_code: string;
    _nationality_type: string;
    is_exclude_nationality: boolean;
    _period_type: string;
    season_id: string;
    is_pickup_included: boolean;
    is_drop_off_included: boolean;
    is_private_transfer_price_included: boolean;
    is_shared_transfer_price_included: boolean;
    is_slot_wise_cancellation_policy: boolean;
    is_guide_included: boolean;
    guide_languages: string;
    _rate_type: string;
    _pricing_type: string;
    _no_show_policy_type: string;
    no_show_charge_value: number;
    is_approved: boolean;
    is_rejected: boolean;
    reviewed_by: string;
    reviewer_comments: string;
    reviewer_user_type: string;
    reviewed_on: string | null;
    revision_nbr: number | null;
    created_by: string | null;
    created_on: string | null;
    updated_by: string | null;
    updated_on: string | null;
    is_active: boolean;
    is_deleted: boolean;
}

export class ActivityDetails {
    language_code: string;
    option_name: string;
    rate_inclusion: string;
    contract_remark: string;
}
export class DateRange {
    Start: string;
    End: string;
}

export class AgeRange {
    from_count: number;
    to_count: number;
    sequence: number;
    rate: number;
}


export class RateRange {
    adultAgeRange: AgeRange[];
    youthAgeRange: AgeRange[];
    seniorAgeRange: AgeRange[];
    childAgeRange: AgeRange[];
    allocationDetails: AllocationDetails | null;
}


export class ActivityPaxRate {
    date: string;
    adult_rate: number;
    senior_rate: number;
    youth_rate: number;
    child_rate: number;
    allocationDetails: AllocationDetails | null;
}
export class Slots {
    slotId: string;
    is_private_transfer: boolean;
    is_shared_transfer: boolean;
    is_without_transfer: boolean;
}

export class ActivityVehicleRate {
    rate: number;
    vehicle_supplier_id: number;
    vehicle_id: number;
    vehicle_max_occupancy: number;
    allocationDetails: AllocationDetails | null;
}

export class ActivityCancellationDetails {
    from: number;
    to: number;
    CP_Type: string;
    CP_Value: number;
    cancellation_Type: string;
}

export class AllocationDetails {
    _allocation_type: string;
    allocation_count: number;
    booking_count: number;
    vehicle_id: string;
    remaining_count: number;
    _release_type: string;
    date: string;
    release_days: number;
}