package cn.iocoder.yudao.module.member.service.activitytabledish;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantSaveReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityTableDishPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityTableDishSaveReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityUpdateDishVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activitytabledish.ActivityTableDishDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 活动用餐桌子配置 Service 接口
 *
 * @author 我是秦俊旗
 */
public interface ActivityTableDishService {

    /**
     * 创建活动用餐桌子配置
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createActivityTableDish(@Valid ActivityTableDishSaveReqVO createReqVO);

    /**
     * 更新活动用餐桌子配置
     *
     * @param updateReqVO 更新信息
     */
    void updateActivityTableDish(@Valid ActivityTableDishSaveReqVO updateReqVO);

    /**
     * 删除活动用餐桌子配置
     *
     * @param id 编号
     */
    void deleteActivityTableDish(Long id);

    /**
     * 获得活动用餐桌子配置
     *
     * @param id 编号
     * @return 活动用餐桌子配置
     */
    ActivityTableDishDO getActivityTableDish(Long id);

    /**
     * 获得活动用餐桌子配置分页
     *
     * @param pageReqVO 分页查询
     * @return 活动用餐桌子配置分页
     */
    PageResult<ActivityTableDishDO> getActivityTableDishPage(ActivityTableDishPageReqVO pageReqVO);

    void createByRestaurant(ActivityRestaurantSaveReqVO activityRestaurantSaveReqVO);

    Boolean updateDish( ActivityUpdateDishVO updateReqVO);

    List<ActivityTableDishDO> getListByIds(List<Long> ids);

    List<ActivityTableDishDO> getListByActivityIdAndMerchantId(Long activityId,Long merchantId);

    Long getMerchantIdByActivityIdAndSerialNumber(Long  activityId,Integer serialNumber);
}