62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace CORP_MAUI.Models;
|
|
|
|
public class User
|
|
{
|
|
public int Id { get; set; }
|
|
public string Username { get; set; } = string.Empty;
|
|
public string Email { get; set; } = string.Empty;
|
|
|
|
[JsonPropertyName("first_name")]
|
|
public string FirstName { get; set; } = string.Empty;
|
|
|
|
[JsonPropertyName("last_name")]
|
|
public string LastName { get; set; } = string.Empty;
|
|
|
|
// Может быть либо объектом Department, либо строкой (для обратной совместимости)
|
|
public object? Department { get; set; }
|
|
|
|
// Может быть либо объектом Position, либо строкой (для обратной совместимости)
|
|
public object? Position { get; set; }
|
|
|
|
public List<Skill>? Skills { get; set; }
|
|
|
|
[JsonPropertyName("is_online")]
|
|
public bool IsOnline { get; set; }
|
|
|
|
[JsonPropertyName("avatar_url")]
|
|
public string? AvatarUrl { get; set; }
|
|
|
|
// Вспомогательные свойства для удобства
|
|
[JsonIgnore]
|
|
public string FullName => $"{FirstName} {LastName}".Trim();
|
|
|
|
[JsonIgnore]
|
|
public string DepartmentName
|
|
{
|
|
get
|
|
{
|
|
if (Department is Department dept)
|
|
return dept.Name;
|
|
if (Department is string str)
|
|
return str;
|
|
return string.Empty;
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public string PositionName
|
|
{
|
|
get
|
|
{
|
|
if (Position is Position pos)
|
|
return pos.Name;
|
|
if (Position is string str)
|
|
return str;
|
|
return string.Empty;
|
|
}
|
|
}
|
|
}
|
|
|