import { PureObject } from '../../../types';

export interface IChannelRateCode {
    rateCodeId?: string;
    channelName: string;
    channelId: string;
    type: number;
}
export declare enum WeekPriceTypeEunm {
    normal = 0,
    week = 1
}
export interface IRoomTypeItem {
    name: string;
    skuId: string;
    relatedType: number;
    channelInfos: IChannelInfoItem[];
    isAllChannel?: boolean;
    roomTypeId?: number;
}
export interface IChannelInfoItem {
    channelName: string;
    channelProductId: string;
    channelId: string;
    ariSyncStatus: number;
    balanceType: BalanceTypes;
    channelProductName: string;
    rateCodeId: string;
}
export interface ISetPrice extends IRoomTypeItem {
    price: IPrice;
    rowPrice?: number;
    weekPrice?: number;
    isSingleChannelToMultiRoomType?: boolean;
}
export interface IPriceSetParams {
    boolRetailPrice: boolean;
    changePriceType: number;
    weekPriceType: WeekPriceTypeEunm;
    calculatType?: number;
    commissionRate?: number;
    priceType?: PriceTypes;
}
export interface IPrice {
    [channelId: string]: PureObject;
}
export declare enum RelatedTypes {
    '房型' = 10,
    '房间' = 20,
    '包栋' = 30
}
export declare enum ChangePriceTypes {
    '指定金额' = 0,
    '规则调价' = 1
}
export declare enum PriceTypes {
    '底价' = 10,
    '卖价' = 20
}
export declare enum BalanceTypes {
    '现付' = 5,
    '预付' = 15
}
export interface IBatchSettingPriceInfo {
    priceSetParams: IPriceSetParams;
    setPriceTableData: ISetPrice[];
    dateRangeList: {
        startDate: string;
        endDate: string;
    }[];
    validWeek: number[];
    dates: string[];
    channelCheckedList: IChannelRateCode[];
}
export declare enum BusinessModules {
    'accommodation' = 1,
    'marketing' = 2,
    'enterprise' = 3
}
export interface IChannelRoomTypeInfo {
    list: {
        /**
         * 渠道id
         */
        channelId: number;
        /**
         * 渠道名
         */
        channelName: string;
        /**
         * 价格码id
         */
        rateCodeId: number;
        /**
         * 房型信息
         */
        roomTypeInfos: {
            /**
             * 房型名
             */
            roomTypeName: string;
            /**
             * 房型id
             */
            roomTypeId: number;
            /**
             * skuId
             */
            skuId: string;
        }[];
    }[];
}
export interface IEnterpriseStrategyItem {
    rateCodeId: string;
    name: string;
}
export interface IEnterpriseRoomTypeItem {
    /**
     * 房型id
     */
    id: number;
    /**
     * skuId
     */
    skuId: string;
    /**
     * 简称
     */
    shortName: string;
    /**
     * 门店id
     */
    ntwId: number;
    /**
     * 门店名称
     */
    ntwName?: string;
    /**
     * 平日价
     */
    weekPrice?: number;
    /**
     * 周末价
     */
    weekendPrice?: number;
}
export interface IHolidaysItem {
    /**
     * 日期
     */
    date: string;
    /**
     * 节假日类型
     */
    type: HolidayTypes;
    /**
     * 节假日描述
     */
    desc: string;
    /**
     * 节日类型集合
     */
    festivalTypeList: FestivalTypes[];
}
export declare enum HolidayTypes {
    "节假日前一天" = -1,
    '节日' = 0,
    '节日附带假日' = 1,
    '周末补班日' = 2
}
export declare enum FestivalTypes {
    '元旦' = 0,
    '春节' = 1,
    '清明' = 2,
    '劳动' = 3,
    '端午' = 4,
    '中秋' = 5,
    '国庆' = 6
}
export interface IPreviewPrice {
    /**
     * 日期
     */
    dates: string[];
    /**
     * 价格码id
     */
    rateCodeId?: string;
    /**
     * skuId
     */
    skuId: string;
    /**
     * 改价基准是否是门市价
     */
    boolRetailPrice?: boolean;
}
export interface IPreviewPriceItem {
    channelProductId: string;
    balanceType: BalanceTypes;
    dateAndPriceList: {
        date: string;
        price: number;
    }[];
}
export interface IBatchSetPrice {
    /**
     * 变更的房型下渠道产品
     */
    list: {
        /**
         * skuId
         */
        skuId: number;
        /**
         * 价格码id
         */
        rateCodeId: number;
        /**
         * 渠道产品ids
         */
        channelProductIds?: number[];
        /**
         * 数值(价格或计算数值)
         */
        value?: number;
        /**
         * 渠道产品支付类型 5-现付 15预付
         */
        balanceType?: number;
    }[];
    /**
     * 改价基准是否是门市价
     */
    boolRetailPrice: boolean;
    /**
     * 改价类型
     */
    changePriceType: number;
    /**
     * 加减乘除类型
     */
    calculatType?: number;
    /**
     * 佣金率(针对携程渠道)
     */
    commissionRate?: number;
    /**
     * 日期集合
     */
    dates: string[];
    /**
     * 日期段列表
     */
    dateRangeList?: {
        /**
         * 开始日期
         */
        startDate?: string;
        /**
         * 结束日期
         */
        endDate?: string;
    }[];
    /**
     * 可用星期设置
     */
    validWeek: number[];
    /**
     * 创建人
     */
    createBy?: string;
    /**
     * 10=底价   20=卖价
     */
    priceType?: PriceTypes;
}
export interface ModifyItem {
    rateCodeId: string;
    value: number;
    skuId: string;
    roomTypeId: number;
    weekValue?: number;
}
export declare enum PriceBenchmarkEnum {
    '门市价' = 0,
    '房价策略' = 1
}
export declare class ChangeItem {
    skuId: string;
    rateCodeId: string;
    value: number;
    weekValue?: number;
}
export declare enum PriceTypeEnum {
    '指定金额' = 0,
    '调价模式' = 1
}
export declare enum CalTypeEnum {
    '加' = 1,
    '减' = 2,
    '乘' = 3,
    '除' = 4
}
export declare class BatchSetParams {
    dateList: string[];
    changePriceType: PriceTypeEnum;
    changePriceBenchmark?: PriceBenchmarkEnum;
    calculateType?: CalTypeEnum;
    changeList: ChangeItem[];
}
