package org.springblade.modules.app.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.app.common.dto.ContractDTO;
import org.springblade.modules.app.common.query.ContractQuery;
import org.springblade.modules.app.entity.ContractDO;

import java.util.List;

/**
 * <p>
 * 用户合同信息表 服务类
 * </p>
 *
 * @author fuxinsheng
 * @since 2021-11-05
 */
public interface IContractService extends IService<ContractDO> {

    /**
     * 根据条件查询合同列表
     *
     * @param query
     * @return
     */
    List<ContractDTO> getContractList(ContractQuery query);

    /**
     * 新增合同
     *
     * @param ContractDTO 新增合同信息
     * @return 合同id
     */
    Long addContract(ContractDTO ContractDTO);

    /**
     * 获取合同详情
     *
     * @param contractQuery 合同查询条件
     * @return ContractDTO
     */
    ContractDTO getContract(ContractQuery contractQuery);

    /**
     * 更新合同详情
     *
     * @param contractDTO 合同详情
     * @return Boolean
     */
    Boolean updateContract(ContractDTO contractDTO);

    /**
     * 获取指定ID的合同
     *
     * @param id
     * @return
     */
    ContractDTO getContractById(Long id);

    /**
     * 分页获取合同列表
     *
     * @param contractQuery
     * @return
     */
    Page<ContractDTO> pageContract(ContractQuery contractQuery);
}
