package com.trade.service.thirdparty.sop.dto;

import cn.hutool.core.date.LocalDateTimeUtil;
import com.trade.common.utils.DateUtils;
import com.trade.service.thirdparty.sop.util.SOPConstantUtil;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;


public class SOPEnterpriseDtlSearch extends SOPBasicRequest {

    /* 接口编号 */
    private String transCode = SOPConstantUtil.SOP_TRANS_CODE_ENTERPRISE_DETAIL;
    /* 企业名称 标签为0时，对应企业中文名称；标签为1时，对应进口方名称 */
    private String enterpriseName;
    /* 企业唯一标识 上报统一社会信用代码 */
    private String enterpriseIdentity;
    /* 需要的企查查数据时间范围 yyyy-MM-dd 标签为0时，必填 */
    private String startDate;
    /* 需要的企查查数据时间范围 yyyy-MM-dd 标签为0时，必填 */
    private String endDate;
    /* 查询信息类型 0：经营异常、被执行人信息、失信人信息 1：工商详细信息 2：裁判文书 3：法院公告 4：软件著作权 5：证书资质 */
    private List<Integer> queryType;

    public SOPEnterpriseDtlSearch(String certNo, String companyName, String updateType, Long userId){
        setUserId(userId);
        setEnterpriseName(companyName);
        setEnterpriseIdentity(certNo);
        List<Integer> queryType = new ArrayList<>();
        if (updateType.contains("0") || updateType.contains("1")) {
            queryType.add(1);
        }
        if (updateType.contains("3")) {
            queryType.add(2);
            queryType.add(3);
            queryType.add(0);
        }
        setQueryType(queryType);
        setStartDate(LocalDateTimeUtil.format(LocalDate.now().minusMonths(1), DateUtils.YYYY_MM_DD));
        setEndDate(LocalDateTimeUtil.format(LocalDate.now(), DateUtils.YYYY_MM_DD));
    }

    @Override
    public String getTransCode() {
        return transCode;
    }

    @Override
    public void setTransCode(String transCode) {
        this.transCode = transCode;
    }

    public String getEnterpriseName() {
        return enterpriseName;
    }

    public void setEnterpriseName(String enterpriseName) {
        this.enterpriseName = enterpriseName;
    }

    @Override
    public String getEnterpriseIdentity() {
        return enterpriseIdentity;
    }

    @Override
    public void setEnterpriseIdentity(String enterpriseIdentity) {
        this.enterpriseIdentity = enterpriseIdentity;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public List<Integer> getQueryType() {
        return queryType;
    }

    public void setQueryType(List<Integer> queryType) {
        this.queryType = queryType;
    }
}
