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.framework.model.validation.DeleteGroup;
import com.jy.framework.model.validation.DetailGroup;
import jakarta.validation.constraints.NotNull;

import java.util.List;

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

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

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

    /**
     * 根据资金流水id合同明细
     */
    ContractInfoVo getDetailByCapitalTransactionsId(@NotNull(groups = {DetailGroup.class, DeleteGroup.class}) Long id);

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

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

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

}
