Удаление целых //-блоков со ссылками (Task/Ruling/этап/ТЗ/§/ дизайн-док/api-map/python/прототип) вместо построчного вырезания — без обрывков фраз; снят боилерплейт <param>/<returns>; то же в .proto.
94 lines
2.5 KiB
C#
94 lines
2.5 KiB
C#
using Deal.Modules.Cards.Application.Abstractions;
|
|
|
|
namespace Deal.Modules.Cards.Application.Models;
|
|
|
|
/// <summary>
|
|
/// Агрегат карточки
|
|
/// </summary>
|
|
public sealed class Card :
|
|
ICard,
|
|
IContentCard,
|
|
IBudgetedCard,
|
|
IContactCard,
|
|
IAttributedCard,
|
|
ICommentableCard,
|
|
ILinkCard,
|
|
IFileCard,
|
|
ITzCard,
|
|
ITraceableCard,
|
|
IRemindableCard,
|
|
ILocatedCard
|
|
{
|
|
/// <inheritdoc />
|
|
public string Id { get; init; } = string.Empty;
|
|
|
|
/// <inheritdoc />
|
|
public string Title { get; init; } = string.Empty;
|
|
|
|
/// <inheritdoc />
|
|
public ISource Source { get; init; } = null!;
|
|
|
|
// ── Модуль «содержимое» ──
|
|
|
|
/// <inheritdoc />
|
|
public string Summary { get; init; } = string.Empty;
|
|
|
|
// ── Модуль «бюджет» ──
|
|
|
|
/// <inheritdoc />
|
|
public CardBudget? Budget { get; init; }
|
|
|
|
// ── Модуль «контакты» ──
|
|
|
|
/// <inheritdoc />
|
|
public IReadOnlyList<CardContact> Contacts { get; init; } = Array.Empty<CardContact>();
|
|
|
|
/// <inheritdoc />
|
|
public string ContactText { get; init; } = string.Empty;
|
|
|
|
// ── Модуль «атрибуты» ──
|
|
|
|
/// <inheritdoc />
|
|
public IReadOnlyList<CardAttribute> Attributes { get; init; } = Array.Empty<CardAttribute>();
|
|
|
|
// ── Модуль «комментарии» ──
|
|
|
|
/// <inheritdoc />
|
|
public IReadOnlyList<CardComment> Comments { get; init; } = Array.Empty<CardComment>();
|
|
|
|
// ── Модуль «ссылки» ──
|
|
|
|
/// <inheritdoc />
|
|
public IReadOnlyList<CardLink> Links { get; init; } = Array.Empty<CardLink>();
|
|
|
|
// ── Модуль «файлы» ──
|
|
|
|
/// <inheritdoc />
|
|
public IReadOnlyList<CardFile> Files { get; init; } = Array.Empty<CardFile>();
|
|
|
|
|
|
/// <inheritdoc />
|
|
public string TzText { get; init; } = string.Empty;
|
|
|
|
// ── Модуль «история движения» ──
|
|
|
|
/// <inheritdoc />
|
|
public IReadOnlyList<CardHistoryEntry> History { get; init; } = Array.Empty<CardHistoryEntry>();
|
|
|
|
// ── Модуль «напоминание» ──
|
|
|
|
/// <inheritdoc />
|
|
public CardReminder? Reminder { get; init; }
|
|
|
|
// ── Модуль «размещение» ──
|
|
|
|
/// <inheritdoc />
|
|
public string ContainerId { get; init; } = CardIds.Inbox;
|
|
|
|
/// <inheritdoc />
|
|
public string? PrevContainerId { get; init; }
|
|
|
|
/// <inheritdoc />
|
|
public bool IsNew { get; init; } = true;
|
|
}
|