forked from ddrilling/AsbCloudServer
74 lines
2.0 KiB
C#
74 lines
2.0 KiB
C#
using Microsoft.EntityFrameworkCore;
|
||
using System.ComponentModel.DataAnnotations;
|
||
using System.ComponentModel.DataAnnotations.Schema;
|
||
|
||
#nullable disable
|
||
|
||
namespace AsbCloudDb.Model
|
||
{
|
||
[Table("t_user"), Comment("Пользователи облака")]
|
||
public partial class User : IId
|
||
{
|
||
[Key]
|
||
[Column("id")]
|
||
public int Id { get; set; }
|
||
|
||
[Column("id_customer")]
|
||
public int? IdCustomer { get; set; }
|
||
|
||
[Column("id_role")]
|
||
public int? IdRole { get; set; }
|
||
|
||
|
||
[Column("login")]
|
||
[StringLength(255)]
|
||
public string Login { get; set; }
|
||
|
||
[Column("password_hash"), Comment("соленый хэш пароля.\nпервые 5 символов - соль")]
|
||
[StringLength(255)]
|
||
public string PasswordHash { get; set; }
|
||
|
||
[Column("state"), Comment("состояние:\n100 - удален")]
|
||
public short? State { get; set; }
|
||
|
||
[Column("level")]
|
||
public int? Level { get; set; }
|
||
|
||
[Column("name"), Comment("имя")]
|
||
[StringLength(255)]
|
||
public string Name { get; set; }
|
||
|
||
[Column("surname"), Comment("фамилия")]
|
||
[StringLength(255)]
|
||
public string Surname { get; set; }
|
||
|
||
[Column("patronymic"), Comment("отчество")]
|
||
[StringLength(255)]
|
||
public string Patronymic { get; set; }
|
||
|
||
[ForeignKey(nameof(IdCustomer))]
|
||
[InverseProperty(nameof(Model.Customer.Users))]
|
||
public virtual Customer Customer { get; set; }
|
||
|
||
[ForeignKey(nameof(IdRole))]
|
||
[InverseProperty(nameof(Model.UserRole.Users))]
|
||
public virtual UserRole Role { get; set; }
|
||
|
||
public string MakeDisplayName()
|
||
{
|
||
if (string.IsNullOrEmpty(Surname))
|
||
return Login;
|
||
|
||
var s = Surname;
|
||
if (!string.IsNullOrEmpty(Name))
|
||
{
|
||
s += $"{Name[0]}.";
|
||
if (!string.IsNullOrEmpty(Patronymic))
|
||
s += $" {Patronymic[0]}.";
|
||
}
|
||
|
||
return s;
|
||
}
|
||
}
|
||
}
|