package com.yc.ship.module.resource.dal.dataobject.machine;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.xml.bind.v2.TODO;
import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
import lombok.*;

/**
 * 设备 DO
 *
 * @author 管理员
 */
@TableName("scenic_machine")
@KeySequence("scenic_machine_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ScenicMachineDO extends TenantBaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 名称
     */
    private String name;
    /**
     * 通道ID
     */
    private Long channelId;
    /**
     * 设备类型
     * <p>
     * 枚举 {@link TODO machine_type 对应的类}
     */
    private Integer machineType;
    /**
     * 设备状态
     * <p>
     * 枚举 {@link TODO machine_status 对应的类}
     */
    private Integer machineStatus;
    /**
     * 设备ID
     */
    private String machineId;
    /**
     * 是否启用
     * <p>
     * 枚举 {@link TODO use_status 对应的类}
     */
    private Long isUse;
    /**
     * 排序
     */
    private Integer sortNum;
    /**
     * 终端号
     */
    private String payTerminalCode;
    /**
     * 序列号
     */
    private String paySerialNum;
    /**
     * 序列号密文数据
     */
    private String paySecretText;
    /**
     * 应用程序版本号
     */
    private String payAppVersion;
    /**
     * 经度
     */
    private String payLongitude;
    /**
     * 纬度
     */
    private String payLatitude;
    /**
     * pos终端号
     */
    private String posNo;

    /**
     * 通道，目前使用 SysUser 的 id 编号
     * <p>
     * 使用 String 类型的原因是，未来可能会存在非数值的情况，留好拓展性。
     */
    @TableField(exist = false)
    private String channelName;

    /**
     * 是否可以编辑
     */
    private Integer isModify;
}
