package com.ruoyi.ss.suit.service;

import com.ruoyi.common.core.domain.ValidateResult;
import com.ruoyi.ss.suit.domain.SuitBO;
import com.ruoyi.ss.suit.domain.SuitVO;

import java.util.Collection;
import java.util.List;

/**
 * 2024/4/26
 *
 * @author wjh
 */
public interface SuitValidator {

    /**
     * 逻辑删除前校验
     */
    ValidateResult preLogicDel(List<Long> suitIds);

    /**
     * APP删除前校验
     */
    ValidateResult preLogicDelByApp(List<Long> ids);


    /**
     * APP创建前校验
     */
    ValidateResult preCreateByApp(SuitBO suit);

    /**
     * APP更新前校验
     */
    ValidateResult preUpdateByApp(SuitBO suit);

    /**
     * 判断这些套餐是否是指定客户的
     */
    boolean isBelong(Collection<Long> ids, Long userId);

    /**
     * 创建、更新公共校验
     */
    ValidateResult preCreateOrUpdate(SuitBO suit);

    /**
     * 后校验
     */
    void afterCheck(SuitVO vo, SuitVO old);
}
