namespace Deal.Modules.Discovery.Application.Models;
///
/// Полная запись нового кандидата задачи (INSERT disc_candidates; discovery.py L435–450).
///
///
/// Write-модель: содержит только заполняемые при добавлении поля. Служебные значения INSERT прототипа
/// L436–449 проставляет хранилище: Participants=NULL, LangRu=NULL, Marks=«[]», Topics=«[]», FitRatio=NULL,
/// Status=new, AutoJoined=false, JoinFailures=0; CreatedAt/UpdatedAt — UTC-now.
///
public sealed record DiscoveryCandidateRow
{
///
/// Подписанный id источника (первичный ключ DiscCandidates).
///
public string DialogId { get; init; } = string.Empty;
///
/// Id задачи поиска.
///
public string TaskId { get; init; } = string.Empty;
///
/// Имя источника (пустое → DialogId нормализует сервис).
///
public string Name { get; init; } = string.Empty;
///
/// Username источника (пуст, если нет публичного username).
///
public string Username { get; init; } = string.Empty;
///
/// Тип источника: channel|group|forum.
///
public string Kind { get; init; } = "channel";
///
/// Цвет источника (дефолт «#666»).
///
public string Hue { get; init; } = "#666";
}