package cn.superdesk.uniorder.common.pagination;

import cn.superdesk.uniorder.common.security.sensitive.constants.SensitiveRequireSwitchEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.io.Serializable;

/**
 * @Description: 目标是 消除 Map<String, Object> params AnCriteria
 * @Author: linjinyu
 * @CreateDate: 2021/3/18 下午12:09
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021/3/18 下午12:09
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder(toBuilder = true)
public class AnBaseQueryCriteria implements Serializable {

	@ApiModelProperty("数据权限-业务系统企业Ids-此值前端可以干预")
	protected String[] outVirtIds;
	@ApiModelProperty("数据权限-可以理解为 订单来源-此值前端可以干预")
	protected String[] outServices;

	@Builder.Default
	@ApiModelProperty("分页参数-页码-pageNumber-第几页-从 1 开始")
	protected Integer pageNumber = 1;
	@Builder.Default
	@ApiModelProperty("分页参数-条数-pageSize-默认 10")
	protected Integer pageSize   = 10;
	@ApiModelProperty("排序参数")
	protected String  orderByClause;

	// 匿名(-1, "匿名"),
	// 统一订单(0, "统一订单"),
	// 服务之窗(1, "服务之窗"),
	// 福利商城_侨城汇(2, "福利商城_侨城汇"),
	@ApiModelProperty("系统登陆类型 outLogin:0-统一订单;1-服务之窗;2-福利商城_侨城汇; @link SysLoginTypeEnum ,预留,实现上是通过 LoginSysUser 信息判定, 此值前端无法干预")
	private Integer outLogin;

	@Builder.Default
	@ApiModelProperty("是否要求数据脱敏 开关 参考名 值范围 0-Off;1-On; 默认: Off 此值前端可以干预")
	private Integer sensitiveRequireSwitch = SensitiveRequireSwitchEnum.Off.getKey();

}
