DD.WellWorkover.Cloud/AsbCloudDb/Model/User.cs

87 lines
2.8 KiB
C#
Raw Normal View History

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace AsbCloudDb.Model
{
[Table("t_user"), Comment("Пользователи облака")]
2021-04-23 10:21:25 +05:00
public partial class User : IId
{
public const int ActiveStateId = 1;
[Key]
[Column("id")]
public int Id { get; set; }
[Column("id_company")]
2023-02-20 12:18:45 +05:00
public int IdCompany { get; set; }
[Column("login")]
[StringLength(255)]
2023-02-20 12:18:45 +05:00
public string Login { get; set; } = null!;
[Column("password_hash"), Comment("соленый хэш пароля.\nпервые 5 символов - соль")]
[StringLength(255)]
2023-02-20 12:18:45 +05:00
public string PasswordHash { get; set; } = null!;
[Column("state"), Comment("состояние:\n0 - не активен, \n1 - активен, \n2 - заблокирован")]
public short IdState { get; set; }
2021-04-23 10:21:25 +05:00
[Column("name"), Comment("имя")]
[StringLength(255)]
2023-02-20 12:18:45 +05:00
public string? Name { get; set; }
2021-04-23 10:21:25 +05:00
[Column("surname"), Comment("фамилия")]
[StringLength(255)]
2023-02-20 12:18:45 +05:00
public string? Surname { get; set; }
2021-04-23 10:21:25 +05:00
[Column("patronymic"), Comment("отчество")]
[StringLength(255)]
2023-02-20 12:18:45 +05:00
public string? Patronymic { get; set; }
[Column("email"), Comment("должность")]
[StringLength(255)]
2023-02-20 12:18:45 +05:00
public string Email { get; set; } = string.Empty;
[Column("phone"), Comment("номер телефона")]
[StringLength(50)]
2023-02-20 12:18:45 +05:00
public string? Phone { get; set; }
[Column("position"), Comment("email")]
[StringLength(255)]
2023-02-20 12:18:45 +05:00
public string? Position { get; set; }
[ForeignKey(nameof(IdCompany))]
[InverseProperty(nameof(Model.Company.Users))]
2023-02-20 12:18:45 +05:00
public virtual Company Company { get; set; } = null!;
2022-04-11 18:00:34 +05:00
[InverseProperty(nameof(RelationUserUserRole.User))]
2023-02-20 12:18:45 +05:00
public virtual ICollection<RelationUserUserRole> RelationUsersUserRoles { get; set; } = null!;
2022-04-11 18:00:34 +05:00
public virtual ICollection<RelationContactWell> RelationContactsWells { get; set; } = null!;
2023-02-20 12:18:45 +05:00
[InverseProperty(nameof(FileInfo.Author))]
public virtual ICollection<FileInfo> Files { get; set; } = null!;
2022-04-11 18:00:34 +05:00
[InverseProperty(nameof(FileMark.User))]
2023-02-20 12:18:45 +05:00
public virtual ICollection<FileMark> FileMarks { get; set; } = null!;
2021-04-23 10:21:25 +05:00
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;
}
}
}