package com.jeesharp.business.modules.pay.paysubmerchantapplyment.service;

import com.jeesharp.business.modules.pay.paysubmerchantapplyment.entity.PaySubMerchantCancel;
import com.jeesharp.business.modules.pay.paysubmerchantapplyment.vo.PaySubMerchantCancelQueryVO;
import com.jeesharp.framework.mybatis.core.service.BaseInterface;

import java.util.List;

/**
 * 商户注销领域服务接口。
 *
 * @author jeesharp
 * @since 2026-06-15
 */
public interface PaySubMerchantCancelService extends BaseInterface<PaySubMerchantCancel, PaySubMerchantCancelQueryVO> {

    /**
     * 新增注销申请记录。
     */
    PaySubMerchantCancel createCancel(PaySubMerchantCancel entity);

    /**
     * 更新注销状态等字段。
     */
    void updateCancel(PaySubMerchantCancel entity);

    /**
     * 按进件 ID 查询进行中的注销申请。
     */
    PaySubMerchantCancel findInProgressByApplymentId(String applymentId);

    /**
     * 按商户注销申请单号查询。
     */
    PaySubMerchantCancel findByOutRequestNo(String outRequestNo);

    /**
     * 按进件 ID 查询历史记录（按提交时间倒序）。
     */
    List<PaySubMerchantCancel> listByApplymentId(String applymentId);
}
