import { DiscountInstListType } from '../../types';
import { DishTypeEnum, DishTypeServiceEnum } from '../constants';
import { ResPrintSerialNoType } from './res';

interface DishesDetailItemBaseType {
    /** 关联库存SKUID */
    actualInvSkuId?: string;
    uniqueId?: string;
    /** 商品中心商品skuId */
    goodsSkuId?: string;
    /** 商品规格名称 */
    goodsSkuName?: string;
    /** 菜品id */
    dishId?: string;
    /** 商品金额 */
    amount?: number;
    /** 订单原金额 */
    originalAmount?: number;
    minimum?: number;
}
export interface DishesDetailItemType extends DishesDetailItemBaseType {
    /** 标志编号（用于标志返回） */
    tagNum?: number;
    /** 最终优惠后并加上加价金额后的金额 */
    actualAmount?: number;
    /** 商品数量 */
    goodsCount?: number;
    /** 商品中心商品id */
    goodsId?: string;
    /** 称重 只有是称重菜的时候用 */
    weight?: number;
    goodsSkuValueList?: GoodsSkuValueItemType[];
}
export interface GoodsSkuValueItemType {
    /** 商品sku规格分类名称 ex:"大小" */
    goodsSkuValueClassifyName: string;
    /** 商品sku规格分类id */
    goodsSkuValueClassifyId: string;
    /** 商品sku规格名称 ex:"200g-250g" */
    goodsSkuValueName: string;
    /** 商品sku规格id */
    goodsSkuValueId: string;
}
export interface DishesPriceDetailType {
    /** 商品sku属性列表 */
    goodsSkuValueList?: GoodsSkuValueItemType[];
    /** 单价 */
    price?: number;
    /** skuId */
    skuId?: string;
    /** 是否上架 */
    boolPutaway?: boolean;
    actualInvSkuId?: string;
    storeGoodsName?: string;
    storeId?: string;
    minimum?: number;
}
export interface DishComboDetailType extends DishesDetailItemBaseType {
    /** 菜品名称 */
    dishName?: string;
    /** 单价 */
    price?: number;
    /** 快捷码 */
    shortCode?: string;
    /** skuId */
    skuId?: string;
    /** 商品sku属性列表 */
    goodsSkuValueList?: GoodsSkuValueItemType[];
    /** 是否默认图片 */
    boolDefaultImg?: boolean;
    /** 是否允许打折 */
    boolDiscount?: boolean;
    /** 是否允许赠送 */
    boolHandsel?: boolean;
    /** 数量 */
    count?: number;
    /** 是否上架 */
    boolPutaway?: boolean;
    /**  */
    priceType?: number;
    priceTypeList?: number[];
    /**
     * 自增主键
     */
    id?: string;
    /**
     * 数量
     */
    num?: number;
    /**
     * 订单商品详情id
     */
    orderItemDetailId?: string;
    /** 是否是第一次添加超过库存 */
    boolFirstAddBeyondStock?: boolean;
    /** 库存 */
    stockNum?: number;
    goodsSkuValueName?: string[];
}
export interface ResDishItemsMesType extends DishesDetailItemBaseType {
    /** 菜品类型 */
    dishType?: DishTypeEnum;
    /** 商品图片 */
    goodsImg?: string;
    /** 菜品名称 */
    name?: string;
    /** 快捷码 */
    shortCode?: string;
    /** 菜品分类id */
    dishClassifyId?: string;
    /** 菜品分类名称 */
    dishClassifyName?: string;
    /** 价格类型 */
    priceTypeList?: number[];
    /** 菜品单位名称 */
    unitName?: string;
    /** 商品id */
    goodsId?: string;
    /** 规格和价格 */
    priceDetailList?: DishesPriceDetailType[];
    /** 套餐明细列表 套餐才有 */
    dishComboDetailList?: DishComboDetailType[];
    /** 价格 */
    minPrice?: number;
    /** 数量 */
    num?: number;
    /** 称重 只有是称重菜的时候用 */
    weight?: number;
    /** 是否允许打折 */
    boolDiscount?: boolean;
    /** 是否允许赠送 */
    boolHandsel?: boolean;
    /** 是否多规格 */
    boolMultiFormat?: boolean;
    minimum?: number;
    /** 必选菜类型 0非必选，1按单必选 ，2按人必选 */
    requiredType?: 0 | 1 | 2;
    requiredNum?: number;
    /** 商品标签Id */
    labelId?: string;
    /** 备注 */
    remark?: string;
    /** skuId */
    skuId?: string;
    /** 商品名称 */
    goodsName?: string;
    /** 是否必选 0非必选 1必选 */
    boolRequired?: boolean;
    /** 菜品明细列 */
    detailList?: DishesDetailItemType[];
    dishName?: string;
    count?: number;
    price?: number;
    /**
      * 菜品服务类型 1 退菜 2赠送
    */
    type?: DishTypeServiceEnum;
    selected?: boolean;
    dishComboDetail?: string;
    customPrice?: number;
    version?: string;
    customAmount?: number;
    discountAmount?: number;
    originalAmount?: number;
    isDiscount?: boolean;
    isCustomize?: boolean;
    amountType?: string;
}
export interface DishMesItemType extends DishesDetailItemBaseType {
    /** 菜品类型 1是单品 2是套餐 0是自定义商品 */
    dishType?: DishTypeEnum;
    /** 菜品备注 */
    remark?: string;
    /** 商品数量 */
    num?: number;
    /** 称重 只有是称重菜的时候用 */
    weight?: number;
    /** 商品名称 */
    goodsName?: string;
    /** 商品规格名称 */
    goodsSkuName?: string;
    /** 是否必选 0非必选 1必选 */
    boolRequired?: boolean;
    /** 菜品图片 */
    dishImg?: string;
    /** 菜品明细列 */
    detailList?: DishesDetailItemType[];
    /** 菜品信息详情 */
    dishMes?: ResDishItemsMesType;
    /** 是否已预订菜 */
    boolBooking?: boolean;
}
export interface ReqDishesCommonParamsType extends ResDishesOriginResultData {
    /** 创建人id */
    createBy?: number;
    /** 菜品信息 */
    dishMesList?: DishMesItemType[];
    /** 房间号 */
    roomNames?: string[];
    /** 客户类型 */
    isCompany?: boolean;
    /** 客户类型0-散客，1-企业 */
    reserveType?: number;
    /** 企业id */
    companyId?: string | number;
    /** 企业名称 */
    companyName?: string;
    /** 餐饮菜品服务列表 */
    dishServiceList?: DishMesItemType[];
    boolOpenedDish?: boolean;
    vipLevelSeq?: number;
    vipLevelName?: string;
    birthday?: string;
    /**
     * 折扣信息
     * 抹零等需前端传入
     */
    discountInstList?: DiscountInstListType[];
    customerId?: string;
    discountInstId?: string;
    discountInstName?: string;
    contactPersonName?: string;
    salesmanUserId?: string;
    butlerUserId?: string;
}
export interface ResCaterDishClassifyItemsType extends ResCaterDishClassifyItemsBaseType {
    /** 菜品分类展示子列表 */
    subClassifyList?: SubClassify[];
}
interface ResCaterDishClassifyItemsBaseType {
    /** 菜品分类id */
    dishClassifyId?: string;
    /** 菜品分类名称 */
    dishClassifyName?: string;
    /** 菜品列表 */
    dishList: ResDishItemsMesType[];
}
export interface ResCaterDishMapDishType {
    classifyList: ResCaterDishClassifyItemsType[];
}
interface SubClassify extends ResCaterDishClassifyItemsBaseType {
    /** 套餐明细列表 套餐才有 */
    dishComboDetailList?: DishComboDetailType[];
    /** 是否默认图片 */
    boolDefaultImg?: boolean;
    /** 是否允许打折 */
    boolDiscount?: boolean;
    /** 是否允许赠送 */
    boolHandsel?: boolean;
    /** 是否多规格 */
    boolMultiFormat?: boolean;
    /** 商品标签Id */
    labelId?: string;
}
interface ResStockDishItem {
    /**
     * 菜品id
     */
    id?: string;
    /**
     * 餐厅id
     */
    restId?: string;
    /**
     * 菜品分类名称
     */
    dishClassifyName?: string;
    /**
     * 菜品名称
     */
    dishName?: string;
    /**
     * 库存数量
     */
    stockNum?: number;
    /**
     * 预定数量
     */
    reservationNum?: number;
    /**
     * 公共库存数量
     */
    commonStockNum?: number;
    /**
     * 规格库存数量
     */
    actualInvStockNum?: number;
}
export type ResStockDishMapType = {
    /**
     * 菜品库存map
     */
    caterInvDishOccupyMap?: Record<string, ResStockDishItem>;
    /**
     * 规格库存map
     */
    actualSkuStockMap?: Record<string, number>;
};
export declare class ResDishesOriginResultData {
    /** 用餐人数 */
    dineNum?: number | undefined;
    /** 整单备注 */
    remark?: string | undefined;
    /** 桌位id列表 */
    boardIds?: string[];
    /** 桌子中文名字 */
    boardNames?: string[];
    /** 主桌位id（并桌时首选的桌位id） */
    mainBoardId?: string | undefined;
    /** 折扣id */
    discountInstList?: DiscountInstListType[];
    /** 渠道id */
    originId?: string | undefined;
    originName?: string | undefined;
    /** 客户姓名 */
    clientName?: string | undefined;
    /** 手机号 */
    phone?: string | undefined;
    /** 房间号id */
    roomIds?: string[];
    /**
     * 房间号
     */
    roomNames?: string[];
    /** 购物车id */
    caterShopCartId?: string | undefined;
    /** 服务id */
    serviceId?: string | undefined;
    /** 预定时间 */
    reserveTime?: string | undefined;
    /** 是否需要检测菜品信息 */
    boolCheckDishMes?: boolean | undefined;
    boolBooking?: boolean | undefined;
    orderActualAmount?: number | undefined;
    orderOriginalAmount?: number | undefined;
    boolUnion?: boolean | undefined;
    /** 关联订单id */
    accomOrderId?: string;
}
export interface ResDishesCommonType extends ResPrintSerialNoType {
    id?: string;
    errorDishMes?: {
        errorGoodsSkuIds?: string[];
        errorMes?: string;
    };
    errorRestList?: string[];
    errorBoardMes?: {
        errorMes?: string;
    };
    restName?: string;
    orderId?: string;
    success?: boolean;
    invDishPreId?: string;
}
export {};
