package com.yiqi.core.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yiqi.common.core.domain.R;
import com.yiqi.core.domain.ClothItem;
import com.yiqi.core.domain.vo.ClothItemPriceVO;
import com.yiqi.core.domain.vo.ClothItemVo;
import com.yiqi.core.domain.vo.ClothItemWithPriceQueryVO;
import com.yiqi.core.domain.vo.ClothPriceSetVO;

/**
 * 衣服Service接口
 *
 * @author ruoyi
 * @date 2023-08-10
 */
public interface IClothItemService extends IService<ClothItem> {

    /**
     * 查询所有衣服（带默认洗衣方式价格）
     * @param clothTypeId 衣服类型ID
     * @return
     */
    public List<ClothItemWithPriceQueryVO> allWithPrice(Long clothTypeId);

    public List<ClothItemPriceVO> selectClothItemPriceList(Long storeId);

    /**
     * 查询衣服
     *
     * @param id 衣服主键
     * @return 衣服
     */
    public ClothItem selectClothItemById(Long id);

    /**
     * 查询衣服列表
     *
     * @param clothItem 衣服
     * @return 衣服集合
     */
    public List<ClothItemVo> selectClothItemList(ClothItem clothItem);

    /**
     * 查询洗护价格列表
     *
     * @param clothItem 衣服
     * @return 衣服集合
     */
    public List<ClothPriceSetVO> selectClothItemPriceList(Long bindAreaId, ClothItem clothItem);


    /**
     * 查询洗护价格列表
     *
     * @param clothItem 衣服
     * @return 衣服集合
     */
    public List<ClothPriceSetVO> priceListByWahMode(ClothItem clothItem);

    /**
     * 新增衣服
     *
     * @param clothItem 衣服
     * @return 结果
     */
    public int insertClothItem(ClothItem clothItem);

    /**
     * 修改衣服
     *
     * @param clothItem 衣服
     * @return 结果
     */
    public int updateClothItem(ClothItem clothItem);

    /**
     * 批量删除衣服
     *
     * @param ids 需要删除的衣服主键集合
     * @return 结果
     */
    public int deleteClothItemByIds(Long[] ids);

    /**
     * 删除衣服信息
     *
     * @param id 衣服主键
     * @return 结果
     */
    public int deleteClothItemById(Long id);

    /**
     * 修改衣服类型状态
     *
     * @param clothItem 衣服
     * @return 结果
     */
    public int updateClothItemStatus(ClothItem clothItem);
}
