package com.nbport.zgwl.contractpush.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 合同推送相关配置
 * 默认从 application.yml 读取测试地址
 * 生产环境可以通过 application-prod.yml 覆盖
 */
@Data
@ConfigurationProperties(prefix = "contract-push")
public class ContractPushProperties {

    private Settlement settlement = new Settlement();

    private DataCollection dataCollection = new DataCollection();

    @Data
    public static class Settlement {

        /** 系统标识 */
        private String systemKey;

        /** 密钥（用于获取 token） */
        private String secretKey;

        /** 获取 token 的 GET 接口地址 */
        private String tokenUrl;

        /** 推送合同数据 POST 接口地址 */
        private String pushContractUrl;

        /** 查询合同审批 POST 接口地址 */
        private String approveQueryUrl;

        /** 合同归档 POST 接口地址 */
        private String archiveUrl;

        /** 审批查看页面的基础 URL（单点登录拼接用） */
        private String approveViewBaseUrl;
    }

    @Data
    public static class DataCollection {

        /** 系统标识 */
        private String systemKey;

        /** 密钥（用于获取 token） */
        private String secretKey;

        /** 业务系统编码（每个子系统唯一，如 ECP/DSSP） */
        private String sysCode;

        /** 获取 token 的 GET 接口地址 */
        private String tokenUrl;

        /** 文件上传 POST 接口地址 */
        private String uploadUrl;

        /** 相对方信息采集 POST 接口地址 */
        private String collectOppositesUrl;

        /** 主体信息采集 POST 接口地址 */
        private String collectZtbsUrl;

        /** 合同信息采集 POST 接口地址 */
        private String collectContractUrl;

        /** 履行计划反馈 POST 接口地址 */
        private String collectPlanFeedbackUrl;

        /** 合同完结 POST 接口地址 */
        private String collectContractCloseUrl;

        /** 合同归档 POST 接口地址 */
        private String collectContractArchiveUrl;

        /** 审批信息查询 POST 接口地址 */
        private String queryApproveInfoUrl;

        /** 审批查看页面的基础 URL（单点登录拼接用） */
        private String approveViewBaseUrl;
    }
}
