| | | 1 | | using System.ComponentModel.DataAnnotations; |
| | | 2 | | using System.ComponentModel.DataAnnotations.Schema; |
| | | 3 | | |
| | | 4 | | namespace OzonDomains.Models; |
| | | 5 | | |
| | | 6 | | /// <summary> |
| | | 7 | | /// Пользовательская настройка типа транзакции: как он называется и выглядит в меню проведения, |
| | | 8 | | /// включён ли для него новый грид (/Studio2/TransactionsGrid) вместо классической страницы. |
| | | 9 | | /// Строка на тип создаётся при первом сохранении из админки; отсутствие строки = дефолты каталога. |
| | | 10 | | /// </summary> |
| | | 11 | | public class TransactionTypeSetting |
| | | 12 | | { |
| | | 13 | | /// <summary>Тип транзакции (<see cref="OzonDomains.TransactionType"/>) — первичный ключ.</summary> |
| | | 14 | | [Key] |
| | | 15 | | [DatabaseGenerated(DatabaseGeneratedOption.None)] |
| | 80 | 16 | | public TransactionType TransactionType { get; set; } |
| | | 17 | | |
| | | 18 | | /// <summary>Заголовок в меню и на странице проведения.</summary> |
| | | 19 | | [MaxLength(100)] |
| | 63 | 20 | | public string? Title { get; set; } |
| | | 21 | | |
| | | 22 | | /// <summary>Короткое имя для чипсов/узких кнопок.</summary> |
| | | 23 | | [MaxLength(40)] |
| | 42 | 24 | | public string? ShortName { get; set; } |
| | | 25 | | |
| | | 26 | | /// <summary>CSS-класс иконки (Font Awesome), например <c>fas fa-truck</c>.</summary> |
| | | 27 | | [MaxLength(80)] |
| | 42 | 28 | | public string? Icon { get; set; } |
| | | 29 | | |
| | | 30 | | /// <summary>Цвет транзакции (#rrggbb).</summary> |
| | | 31 | | [MaxLength(16)] |
| | 43 | 32 | | public string? Color { get; set; } |
| | | 33 | | |
| | | 34 | | /// <summary>Группа в меню проведения: Закупка / Отгрузка / Возвраты / Склад / Отмена / Цены.</summary> |
| | | 35 | | [MaxLength(60)] |
| | 42 | 36 | | public string? Group { get; set; } |
| | | 37 | | |
| | | 38 | | /// <summary>Подсказка пользователю (что делает транзакция).</summary> |
| | | 39 | | [MaxLength(1000)] |
| | 42 | 40 | | public string? Hint { get; set; } |
| | | 41 | | |
| | | 42 | | /// <summary>Кнопки OrdersGrid ведут на новый грид (/Studio2/TransactionsGrid/{slug}) вместо старой страницы.</summa |
| | 46 | 43 | | public bool UseGrid { get; set; } |
| | | 44 | | |
| | | 45 | | /// <summary>Выключенная транзакция не показывается в меню проведения.</summary> |
| | 90 | 46 | | public bool IsEnabled { get; set; } = true; |
| | | 47 | | |
| | | 48 | | /// <summary>Порядок внутри группы.</summary> |
| | 41 | 49 | | public int? DisplayOrder { get; set; } |
| | | 50 | | |
| | | 51 | | /// <summary>Значения по умолчанию для страницы грида (JSON: processIn1C, requirePurchasePrice, showOffers …).</summ |
| | | 52 | | [Column(TypeName = "text")] |
| | 42 | 53 | | public string? DefaultsJson { get; set; } |
| | | 54 | | |
| | 67 | 55 | | public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; |
| | | 56 | | |
| | | 57 | | [MaxLength(255)] |
| | 23 | 58 | | public string? UpdatedBy { get; set; } |
| | | 59 | | } |