package com.ecep.contract.ds.contract.repository;

import java.util.List;
import java.util.Optional;
import org.springframework.stereotype.Repository;
import com.ecep.contract.ds.MyRepository;
import com.ecep.contract.ds.contract.model.ContractInvoice;

@Repository
public interface ContractInvoiceRepository extends MyRepository<ContractInvoice, Integer> {
    
    /**
     * 根据GUID查找发票的方法
     * 
     * @param code 发票代码
     * @return 返回一个Optional<ContractInvoice>对象，可能包含找到的发票，也可能为空
     */
    Optional<ContractInvoice> findByCode(String code);
    
    /**
     * 根据合同ID查找发票列表
     * 
     * @param contractId 合同ID
     * @return 发票列表
     */
    List<ContractInvoice> findByContractId(Integer contractId);
    
    /**
     * 根据发票ID查找合同发票
     * 
     * @param invoiceId 发票ID
     * @return 合同发票实体
     */
    Optional<ContractInvoice> findByInvoiceId(Integer invoiceId);
}