package com.chushang.inspection.terminal.query;

import com.chushang.common.mybatis.annotation.Condition;
import com.chushang.common.mybatis.page.CommonParam;
import lombok.*;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TerminalAppQuery extends CommonParam {

    /**
     * 任务id
     */
    @Condition(name = "task_id")
    @NotNull(message = "任务id不能为空")
    private Long taskId;

    /**
     * 商户编号
     */
    @Condition(name = "store_no")
    @Size(max = 64, message = "商户编号不能超过64个字符")
    private String storeNo;

    /**
     * 终端编号
     */
    @Condition(name = "terminal_no")
    @Size(max = 30, message = "终端编号不能超过30个字符")
    private String terminalNo;

    /**
     * 终端编号
     */
    @Condition(name = "terminal_sn")
    @Size(max = 100, message = "终端sn号不能超过100个字符")
    private String terminalSn;

    /**
     * 终端地址
     */
    @Condition(name = "terminal_address", type = Condition.ConditionType.like)
    @Size(max = 300, message = "终端地址号不能超过300个字符")
    private String terminalAddress;

    /**
     * 是否占用（内部使用 不需要传）
     */
    @Builder.Default
    @Condition(name = "occupy")
    private Integer occupy = 0;

    /**
     * 状态（内部使用 不需要传）
     */
    @Builder.Default
    @Condition(name = "state")
    private Integer storeState = 1;

    /**
     * 门店名称
     */
    @Size(max = 128, message = "门店名称不能超过128个字符")
    private String shopName;

    /**
     * 下级任务名称
     */
    @Size(max = 64, message = "下级任务名称不能超过64个字符")
    private String lowerTaskName;

    /**
     * 商户名称
     */
    @Size(max = 128, message = "商户名称不能超过128个字符")
    private String storeName;

    /**
     * 商户联系人
     */
    @Size(max = 128, message = "商户联系人不能超过128个字符")
    private String storeContact;

    /**
     * 商戶地址
     */
    @Size(max = 300, message = "商戶地址不能超过300个字符")
    private String storeAddress;
}
