64 lines
1.6 KiB
C#
64 lines
1.6 KiB
C#
|
||
using System.Text.Json.Serialization;
|
||
|
||
namespace CORP_MAUI.Models;
|
||
|
||
/// <summary>
|
||
/// Модель комментария
|
||
/// </summary>
|
||
public class Comment
|
||
{
|
||
public int Id { get; set; }
|
||
|
||
[JsonPropertyName("content")]
|
||
public string Content { get; set; } = string.Empty;
|
||
|
||
[JsonPropertyName("body")]
|
||
public string? Body { get; set; }
|
||
|
||
[JsonPropertyName("text")]
|
||
public string? Text { get; set; }
|
||
|
||
[JsonIgnore]
|
||
public string DisplayContent
|
||
{
|
||
get
|
||
{
|
||
if (!string.IsNullOrWhiteSpace(Content)) return Content;
|
||
if (!string.IsNullOrWhiteSpace(Body)) return Body;
|
||
return Text ?? string.Empty;
|
||
}
|
||
}
|
||
|
||
public User? Author { get; set; }
|
||
|
||
[JsonPropertyName("post")]
|
||
public int Post { get; set; }
|
||
|
||
[JsonPropertyName("created_at")]
|
||
public DateTime CreatedAt { get; set; }
|
||
|
||
[JsonPropertyName("date")]
|
||
public DateTime? Date { get; set; }
|
||
|
||
[JsonIgnore]
|
||
public DateTime DisplayDate
|
||
{
|
||
get
|
||
{
|
||
// Если CreatedAt валидный (больше 2000 года, чтоб отсечь дефолт), берем его
|
||
if (CreatedAt.Year > 2000) return CreatedAt;
|
||
// Иначе пробуем поле Date
|
||
if (Date.HasValue) return Date.Value;
|
||
// Иначе текущее время
|
||
return DateTime.Now;
|
||
}
|
||
}
|
||
|
||
[JsonPropertyName("updated_at")]
|
||
public DateTime UpdatedAt { get; set; }
|
||
|
||
[JsonPropertyName("likes_count")]
|
||
public int LikesCount { get; set; }
|
||
}
|