package cn.iocoder.yudao.module.system.service.agreement;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.agreement.vo.AgreementPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.agreement.vo.AgreementSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.agreement.AgreementDO;

import javax.validation.Valid;

/**
 * 平台协议 Service 接口
 *
 * @author dp
 */
public interface AgreementService {

    /**
     * 创建平台协议
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createAgreement(@Valid AgreementSaveReqVO createReqVO);

    /**
     * 更新平台协议
     *
     * @param updateReqVO 更新信息
     */
    void updateAgreement(@Valid AgreementSaveReqVO updateReqVO);

    /**
     * 删除平台协议
     *
     * @param id 编号
     */
    void deleteAgreement(Long id);

    /**
     * 获得平台协议
     *
     * @param id 编号
     * @return 平台协议
     */
    AgreementDO getAgreement(Long id);

    /**
     * 根据类型获取平台协议
     *
     * @param type 类型 1服务条款 2隐私声明
     * @return 平台协议
     */
    AgreementDO getAgreementByType(Integer type);

    /**
     * 获得平台协议分页
     *
     * @param pageReqVO 分页查询
     * @return 平台协议分页
     */
    PageResult<AgreementDO> getAgreementPage(AgreementPageReqVO pageReqVO);

}