| | | 1 | | using System.ComponentModel.DataAnnotations; |
| | | 2 | | using System.ComponentModel.DataAnnotations.Schema; |
| | | 3 | | |
| | | 4 | | namespace OzonDomains.Models.SupplierStatuses; |
| | | 5 | | |
| | | 6 | | /// <summary>История смен стадии и статуса заказа у поставщика.</summary> |
| | | 7 | | [Table("OrderSupplierStateHistory")] |
| | | 8 | | public class OrderSupplierStateHistory |
| | | 9 | | { |
| | 0 | 10 | | public long Id { get; set; } |
| | | 11 | | |
| | 35 | 12 | | public long OrderSupplierStateId { get; set; } |
| | | 13 | | |
| | 0 | 14 | | public virtual OrderSupplierState? OrderSupplierState { get; set; } |
| | | 15 | | |
| | | 16 | | /// <summary>Дублируется из состояния, чтобы историю можно было читать одним запросом по заказу.</summary> |
| | 36 | 17 | | public int OrderId { get; set; } |
| | | 18 | | |
| | | 19 | | /// <summary>Связанная строка общей ленты <c>orders_history</c>.</summary> |
| | 1 | 20 | | public int? OrderHistoryId { get; set; } |
| | | 21 | | |
| | 33 | 22 | | public virtual OrderHistory? OrderHistory { get; set; } |
| | | 23 | | |
| | 31 | 24 | | public int? FromSupplierStatusId { get; set; } |
| | | 25 | | |
| | 31 | 26 | | public int? ToSupplierStatusId { get; set; } |
| | | 27 | | |
| | | 28 | | [MaxLength(20)] |
| | 34 | 29 | | public string? FromStage { get; set; } |
| | | 30 | | |
| | | 31 | | [Required, MaxLength(20)] |
| | 72 | 32 | | public string ToStage { get; set; } = string.Empty; |
| | | 33 | | |
| | | 34 | | [MaxLength(500)] |
| | 33 | 35 | | public string? Comment { get; set; } |
| | | 36 | | |
| | | 37 | | /// <summary>Job / Checkout / Manual — см. OrderSupplierStateSource.</summary> |
| | | 38 | | [Required, MaxLength(30)] |
| | 67 | 39 | | public string Source { get; set; } = OrderSupplierStateSource.Job; |
| | | 40 | | |
| | 70 | 41 | | public DateTime PerformedAt { get; set; } = DateTime.UtcNow; |
| | | 42 | | |
| | | 43 | | [MaxLength(450)] |
| | 32 | 44 | | public string? PerformedBy { get; set; } |
| | | 45 | | } |