namespace Deal.Modules.Cards.Application; /// /// Ядро карточки: единственное, что есть у любой карточки во всех дашбордах. /// /// /// Никаких «полей заявки» в ядре: стек/бюджет/контакты и прочее — опциональные модули-роли /// (см. IContentCard, IBudgetedCard и др.), которые реализует агрегат карточки /// по мере наполнения. — откуда карточка пришла (см. иерархию ISource); /// у карточки, созданной пайплайном из сообщения канала, источник составной: /// ICompositeSource { Origin: ITelegramSource, Pipeline: [IAiSource/IMl] }. /// Типизированный доступ к конкретному источнику — дискриминация через иерархию ISource /// (паттерн-матчинг), отдельный generic-интерфейс не нужен. /// public interface ICard { /// /// Короткий id карточки (единый префикс карточек, напр. c_). /// public string Id { get; } /// /// Заголовок карточки (очищенный). /// public string Title { get; } /// /// Источник: откуда карточка пришла (полиморфный, не enum). /// public ISource Source { get; } }