package com.bocloud.ims.entity.common;

import com.bocloud.entity.annotations.Column;
import com.bocloud.entity.annotations.PK;
import com.bocloud.entity.annotations.Table;
import com.bocloud.entity.bean.Generic;
import com.bocloud.entity.meta.PKStrategy;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * 账号安全对象
 *
 * @author wangyu
 * @version 1.0
 * @since 2020年1月29日
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Table("account_security")
public class AccountSecurity extends Generic {
    @PK(value = PKStrategy.AUTO)
    private Long id; // ID
    @Column("target_id")
    private Long targetId; // 目标对象id(用户，管理员，租户)
    @Column("salt")
    private String salt; // 随机数
    @Column("api_key")
    private String apiKey;// api key
    @Column("sec_key")
    private String secKey;// sec key
    @Column("category")
    private Category category;// 账号安全目标类型(Tenant,Manager,User)
    @Column("tenant_id")
    private Long tenantId;// 目标对象是user时的tenantId

    public enum Category {
        Account,//统一用户账号
        Tenant, //租户
        User,//用户
        Manager,//管理员
    }
}
