package com.jy.business.contract.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jy.business.contract.model.dto.ContractInfoDto;
import com.jy.business.contract.model.dto.ContractInfoSelectDto;
import com.jy.business.contract.model.vo.ContractInfoVo;
import com.jy.business.contract.model.vo.ContractStatisticsVo;
import com.jy.business.contract.model.vo.TransactionVo;
import com.jy.framework.model.validation.AddGroup;
import com.jy.framework.model.validation.EditGroup;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;

import java.util.List;

/**
 * <p>
 * 合同 服务类
 * </p>
 *
 * @author
 * @since 2025-06-10
 */
public interface ContractInfoService {

    List<ContractStatisticsVo> getStatistics(ContractInfoSelectDto dto);

    /**
     * 合同列表
     */
    List<ContractInfoVo> getList(ContractInfoSelectDto dto);

    /**
     * 合同分页
     */
    Page<ContractInfoVo> getPage(ContractInfoSelectDto dto);

    /**
     * 合同明细
     */
    ContractInfoVo getDetail(Long id);

    /**
     * 合同新增
     */
    void add(ContractInfoDto dto);

    /**
     * 合同编辑
     */
    void edit(ContractInfoDto dto);

    /**
     * 合同删除
     */
    void delete(List<Long> idList);

    /**
     * 交易明细
     */
    List<TransactionVo> getTransactionList(Long id);

    void settlement(ContractInfoDto dto);

}
