using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.User
{
///
/// DTO пользователя платформы
///
public class UserDto : IId
{
///
public int Id { get; set; }
///
/// логин
///
[Required(ErrorMessage = "Логин не должен быть пустым")]
[StringLength(50, MinimumLength = 3, ErrorMessage = "Допустимая длина логина от 3 до 50 символов")]
public string Login { get; set; } = null!;
///
/// Имя
///
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина имени от 1 до 50 символов")]
public string? Name { get; set; }
///
/// Фамилия
///
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина фамилии от 1 до 50 символов")]
public string? Surname { get; set; }
///
/// Отчество
///
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина отчества от 1 до 50 символов")]
public string? Patronymic { get; set; }
///
/// Email
///
[Required]
[StringLength(260, MinimumLength = 3, ErrorMessage = "Допустимая длина email от 3 до 260 символов")]
public string Email { get; set; } = null!;
///
/// Phone
///
[StringLength(50, MinimumLength = 1, ErrorMessage = "Допустимая длина телефона от 1 до 50 символов")]
public string? Phone { get; set; }
///
/// Должность
///
[StringLength(100, MinimumLength = 1, ErrorMessage = "Допустимая длина должности от 1 до 100 символов")]
public string? Position { get; set; }
///
/// Id компании
///
[Required]
public int IdCompany { get; set; }
///
/// Id состояния пользователя
/// 0 - не активен,
/// 1 - активен,
/// 2 - заблокирован
///
public short IdState { get; set; }
///
/// DTO компании
///
public CompanyDto? Company { 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;
}
}
}