All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.n2oapp.security.admin.impl.entity.AccountEntity Maven / Gradle / Ivy

There is a newer version: 8.0.1
Show newest version
package net.n2oapp.security.admin.impl.entity;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import net.n2oapp.security.admin.api.model.UserLevel;

import javax.persistence.*;
import java.util.List;

@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name = "account", schema = "sec")
public class AccountEntity {

    /**
     * Уникальный идентификатор записи
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    private Integer id;

    /**
     * Пользователь, которому принадлежит аккаунт
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "user_id")
    private UserEntity user;

    /**
     * Имя аккаунта
     */
    private String name;

    /**
     * Регион пользователя (заполняется для регионального уровня пользователей)
     */
    @JoinColumn(name = "region_id")
    @ManyToOne(fetch = FetchType.EAGER)
    private RegionEntity region;

    /**
     * Организация пользователя (заполняется для уровня пользователя - организация)
     */
    @JoinColumn(name = "organization_id")
    @ManyToOne(fetch = FetchType.EAGER)
    private OrganizationEntity organization;

    /**
     * Подразделение пользователя (заполняется для федерального уровня пользователя)
     */
    @JoinColumn(name = "department_id")
    @ManyToOne(fetch = FetchType.EAGER)
    private DepartmentEntity department;

    /**
     * Уровень пользователя, для которого предназначена роль
     */
    @Column(name = "user_level")
    @Enumerated(EnumType.STRING)
    private UserLevel userLevel;

    /**
     * Активен ли данный аккаунт
     */
    @Column(name = "is_active")
    private Boolean isActive;

    /**
     * Роли пользователя
     */
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(schema = "sec", name = "account_role",
            joinColumns = {@JoinColumn(name = "account_id")},
            inverseJoinColumns = {@JoinColumn(name = "role_id")}
    )
    private List roleList;

    /**
     * внешний SSO сервер
     */
    @Column(name = "external_system")
    private String externalSystem;

    /**
     * Идентификатор пользователя в сторонних системах
     */
    @Column(name = "external_uid")
    private String externalUid;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy