| | | 1 | | using OzonDomains.Models; |
| | | 2 | | |
| | | 3 | | namespace OzonOrdersWeb.Areas.Studio2.ViewModels.EmailRouting; |
| | | 4 | | |
| | | 5 | | /// <summary>Строка грида «Последние письма» (без вложений и тела письма).</summary> |
| | 0 | 6 | | public sealed record EmailInboxMessageRow( |
| | 0 | 7 | | long Id, DateTime? ReceivedAtUtc, DateTime CreatedAt, string? Sender, string? Subject, int AttachmentsCount, string |
| | | 8 | | |
| | | 9 | | /// <summary>Каркас страниц импорта из почты: строки результатов грузят серверные гриды.</summary> |
| | | 10 | | public class EmailRoutingResultsViewModel |
| | | 11 | | { |
| | | 12 | | public List<EmailInboxMessageRow> MessageRows { get; set; } = new(); |
| | | 13 | | |
| | | 14 | | /// <summary>Сколько всего записей (для счётчика в шапке).</summary> |
| | | 15 | | public int TotalCount { get; set; } |
| | | 16 | | |
| | | 17 | | // --- Справочники --- |
| | | 18 | | public List<EmailRoutingRule> AvailableRules { get; set; } = new(); |
| | | 19 | | |
| | | 20 | | // --- Папки Dropbox --- |
| | | 21 | | public Dictionary<string, Dictionary<string, string>> DropboxFolders { get; set; } = new(); |
| | | 22 | | public string? DropboxBaseFolder { get; set; } |
| | | 23 | | |
| | | 24 | | // --- IMAP-подключение --- |
| | | 25 | | public EmailImapConnectionViewModel? ImapConnection { get; set; } |
| | | 26 | | public EmailImapSettingsEditViewModel? ImapSettingsEdit { get; set; } |
| | | 27 | | |
| | | 28 | | // --- Статистика --- |
| | | 29 | | public int CountUploaded { get; set; } |
| | | 30 | | public int CountOrdersImported { get; set; } |
| | | 31 | | public int CountRejected { get; set; } |
| | | 32 | | public int CountFailed { get; set; } |
| | | 33 | | public int CountDuplicate { get; set; } |
| | | 34 | | |
| | | 35 | | // Сколько писем показываем в секции "Последние письма" (берем из ImapSettings.FetchLimit) |
| | | 36 | | public int LastMessagesLimit { get; set; } = 0; |
| | | 37 | | } |