package cn.pluss.platform.channel;

import cn.pluss.platform.entity.IdCard;
import cn.pluss.platform.entity.MercChangeRecord;
import cn.pluss.platform.entity.MerchantChannelStatus;

/**
 * 进件请求接口定义
 * 进件结果接口{@link MerchAuditResultService}
 * @author DJH
 */
public interface MerchAuditReqService {

    default String getChangeFormEmpty(String merchantId) {
        return null;
    };

    default String getChangeFormDemo() {
        return null;
    };

    default String getCertificateUrlEmpty(String merchantId) {
        return null;
    }

    default String getCertificateUrlDemo() {
        return null;
    }

    default String getCertificateForCorporateEmpty(String merchantId) {
        return null;
    }

    default String getCertificateForCorporateDemo() {
        return null;
    }

    /**
     * 进件
     * @param userId
     */
    void audit(String userId);

    void edit(String userId, MercChangeRecord.Type type);

    /**
     * 变更基本信息
     */
    void editBaseInfo(String userId);

    /**
     * 变更结算卡
     * 一般不支持非法人结算卡变更
     */
    void editAccountInfo(String userId);

    /**
     * 修改费率
     */
    void editRate(String userId);

    /**
     * 更新法人身份证
     * @param userId
     */
    void modifyLegalCard(String userId);

    /**
     * 更新结算身份证
     * @param userId
     */
    void modifyAccCard(String userId);

    /**
     * 修改营业执照
     * @param userId    用户ID
     */
    void editBusLicense(String userId);

    /**
     * 签约
     */
    void sign(MerchantChannelStatus mcs);

    /**
     * 通道报备
     * @param mcs   进件信息
     */
    void report(MerchantChannelStatus mcs);

    /**
     * 重新报备
     * @param mcs   进件信息
     */
    void reportAgain(MerchantChannelStatus mcs);
}
