package com.sptg.estate.api.vo;

import com.baomidou.mybatisplus.annotations.TableField;
import com.sptg.estate.api.dto.AccessCardDto;
import com.sptg.estate.api.dto.UserDto;
import com.sptg.estate.api.entity.AccessCard;
import com.sptg.estate.api.entity.User;
import com.sptg.permissions.api.entity.Account;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * title: DevicesAccessPushVO
 * package: com.sptg.estate.api.vo
 * description: 设备授权下发 VO，用于承载本次需要进行人脸或门禁卡下发到指定设备的传输对象
 *
 *
 */

@Setter
@Getter
public class DevicesAccessPushVO {

    /**
     * 用户，可以是业主、家庭成员、租客、服务人员等
     */
    @TableField(exist = false)
    private Long userId;

    /**
     * 下发操作类型，
     * 1：特殊授权门禁操作，2：设备禁用人脸、门禁卡操作，3：人脸启用操作，4：卡启用操作
     * 5：人脸禁用操作，6：卡禁用操作
     */
    @TableField(exist = false)
    private Integer operType;

    /**
     * 发布类型{ 1 ：按小区发布，2：按单元发布，3：按设备发布}
     */
    @TableField(exist = false)
    private Integer pushType;

    /**
     * 下发材料{1：下发人脸，2：下发门禁卡}
     */
    @TableField(exist = false)
    private Integer pushMaterial;

    /**
     * 操作者
     */
    @TableField(exist = false)
    private Account onLineUser;

    /**
     * 下发有效期-开始时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date beginDate;

    /**
     * 下发有效期-截止时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date endDate;

    /**
     * 勾选的业务对象主键
     * 按小区分布，就是小区的ID集
     * 按单元发布，就是单元的ID集
     * 按设备发布，就是设备的ID集
     */
    @TableField(exist = false)
    private List<Long> deviceIdList;

    @TableField(exist = false)
    private AccessCardDto accessCardDto;

    @TableField(exist = false)
    private UserDto userDto;
}
