import request from '/@/utils/request';

/**
 * 分页查询应用列表
 * @param size	每页显示条数
 * @param current	当前页
 * @param appId	应用ID
 * @param appName	应用名称
 * @param domainType	应用类型
 * @param remark	备注
 * @returns 
 */
export const pageList = (params?: Object) => {
	return request({
		url: '/marketing/app/page',
		// url: 'https://m1.apifoxmock.com/m1/6687089-6396408-default/app/page',
		method: 'get',
		params,
	});
};

/**
 * 分页查询拉黑应用列表
 * @param size	每页显示条数
 * @param current	当前页
 * @param appId	应用ID
 * @param appName	应用名称
 * @param domainType	应用类型
 * @param remark	备注
 * @returns 
 */
export const pageDel = (params?: Object) => {
	return request({
		url: '/marketing/app/pageDel',
		method: 'get',
		params,
	});
};

/**
 * 拉黑/恢复应用（设置应用状态）
 * @param id  true	
 * @param status 状态,true-启用,false-拉黑
 * @returns 
 */
export const delAppById = (data: Object) => {
	return request({
		url: '/marketing/app/setStatus',
		method: 'post',
		data: data,
	});
};

/**
 * 批量更新应用信息
 * @param 
 [
  {
    "id": 0,
    "domainLimit": true,
    "launch": true,
    "triggerRule": 0,
    "triggerNum": 0,
    "remark": "",
    "delIps": [], // 删除的ip和域名id放这里
    "delDomains": [],
    "ips": [ // 新增，修改 不变的都放在这里
      {
        "id": 0, // 新增 没有id
        "ipType": 0,
        "sourceType": 0,
        "groupId": 0,
        "groupName": "",
        "ipMode": 0,
        "startIp": "",
        "endIp": "",
        "modify": true // 修改 为 true
      }
    ],
    "domains": [
      {
        "id": 0,
        "sourceType": 0,
        "groupId": 0,
        "groupName": "",
        "domain": "",
        "modify": true
      }
    ]
  }
]
 * @returns 
 */
export const appUpdate = (data: Object) => {
	return request({
		url: '/marketing/app/update',
		method: 'post',
		data: data,
	});
};

/**
 * 修改应用IP集合
 * @param id 
 * @param delIps 
 * @param delIps 
 * @returns ips
 */
export const updateModIp = (data: Object) => {
	return request({
		url: '/marketing/app/modIp',
		method: 'post',
		data: data,
	});
};

/**
 * 修改应用域名集合
 * @param id 
 * @param delDomains 
 * @param delIps 
 * @returns domains
 */
export const updateModDomains = (data: Object) => {
	return request({
		url: '/marketing/app/modDomain',
		method: 'post',
		data: data,
	});
};

/**
 * 设置应用信息
 * @param id	id
 * @param domainType	应用类型,0-Android,1-IOS
 * @param domainLimit	域名限制
 * @param launch	营销投放
 * @param triggerRule	触发规则,1-仅一次,2-多次
 */
export const setAppInfo = (data: Object) => {
	return request({
		url: '/marketing/app/setInfo',
		method: 'post',
		data: data,
	});
};

/**
 * 分页统计应用一级营销数据
 * @param appId	应用ID
 * @param timeRange	时间范围,0-全部,1-24小时,2-15分钟
 * @param size	每页显示条数
 * @param current	当前页
 */
export const getStatPage = (params: Object) => {
	return request({
		url: '/marketing/app/stat/page',
		method: 'get',
		params,
	});
};

/**
 * 分页统计应用二级营销数据
 * @param appId	应用ID
 * @param timeRange	时间范围,0-全部,1-24小时,2-15分钟
 * @param ip	ip
 * @param size	每页显示条数
 * @param current	当前页
 */
export const getStatSecondPage = (params: Object) => {
	return request({
		url: '/marketing/app/stat/second/page',
		method: 'get',
		params,
	});
};

/**
 * 分页查询营销推送记录
 * @param ruleName	规则名称
 * @param triggerCondition	触发条件
 * @param pageNum	页码
 * @param pageSize	每页条数
 */
export const getPushPage = (data: Object) => {
	return request({
		url: '/marketing/push/page',
		method: 'post',
		data,
	});
};

/**
 * 分页查询手动推送记录
 * @param startTime 开始时间
 * @param endTime 结束时间
 * @param pageNum	页码
 * @param pageSize	每页条数
 */
export const getHandPushPage = (data: Object) => {
	return request({
		url: '/marketing/handPush/page',
		method: 'post',
		data,
	});
};