package cn.ey.biz.module.external.api.fd.feign.reqdto;

import java.util.List;
import java.util.Map;

import cn.ey.biz.common.pojo.PageParam;
import lombok.Data;


@SuppressWarnings("serial")
@Data
public class EngGlobalSearchRequest extends PageParam {

    /**检索条件 - 商机Code列表*/
    private List<String> opprCodes;
    
    /**检索条件 - 客户ID列表*/
    private List<String> ccIds;
   
    /**检索条件 - 业务线*/
    private ServiceLineCondition serviceLineCondition;
  
    /**检索条件 - 行业*/
    private IndustryCondition industryCondition;
    
    /**检索条件 - ERP - key: 运算符（eq、lt、le、gt、ge），value: 运算数*/
    private Map<String, String> erp;
    
    /**检索条件 - EAF - key: 运算符（eq、lt、le、gt、ge），value: 运算数*/
    private Map<String, String> eaf;
    
    /**检索条件 - Margin - key: 运算符（eq、lt、le、gt、ge），value: 运算数*/
    private Map<String, String> margin;
   
    /**检索条件 - 企业类型*/
    private List<String> companyType;
   
    /**检索条件 - 服务编码*/
    private ServiceCodeCondition serviceCodeCondition;
   
    /**检索条件 - 创建时间 - key: 运算符（eq、lt、le、gt、ge），value: 运算数*/
    private Map<String, String> createDate;
   
    /**检索条件 - 项目状态*/
    private List<String> engStatus;
    
    /**检索条件 - EP GPN*/
    private List<String> ep;
    
    /**检索条件 - EM GPN*/
    private List<String> em;
    
    /**模糊搜索类型：01 所有 02 商机 03 项目 04客户*/
    private String fuzzySearchType;
    
   
    /**模糊搜索关键词（项目编号、项目名称）*/
    private String fuzzySearchKeywords;
    
    /**排序 - 字段:排序方向;...*/
    private String sort;

    /**检索条件 - 业务线*/
    @Data
    public static class ServiceLineCondition {
      
        /**业务线Code列表*/
        private List<String> serviceLineCodes;
       
        /**子业务线Code列表*/
        private List<String> subServiceLineCodes;
        
        /**子管理单位列表*/
        private List<String> subManagementUnits;
    }

    /**检索条件 - 行业*/
    @Data
    public static class IndustryCondition {
       
        /**行业Code列表*/
        private List<String> industryCodes;
       
        /**子行业Code列表*/
        private List<String> subIndustryCodes;
    }

    /**检索条件 - 服务编码*/
    @Data
    public static class ServiceCodeCondition {
       
        /**全球服务编码列表*/
        private List<String> globalServiceCodes;
       
        /**本地服务编码列表*/
        private List<String> localServiceCodes;
    }

}
