< Summary

Information
Class: OzonDomains.Models.BergOrder
Assembly: OzonDomains
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/BergOrder.cs
Line coverage
100%
Covered lines: 16
Uncovered lines: 0
Coverable lines: 16
Total lines: 75
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Id()100%11100%
get_ExternalOrderId()100%11100%
get_Reference()100%11100%
get_DispatchType()100%11100%
get_DispatchAt()100%11100%
get_DispatchTime()100%11100%
get_ShipmentAddressId()100%11100%
get_ShipmentAddress()100%11100%
get_PaymentType()100%11100%
get_IsTest()100%11100%
get_Status()100%11100%
get_RequestJson()100%11100%
get_ResponseJson()100%11100%
get_CreatedBy()100%11100%
get_CreatedAtUtc()100%11100%
get_Items()100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/BergOrder.cs

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2using System.ComponentModel.DataAnnotations.Schema;
 3
 4namespace OzonDomains.Models;
 5
 6/// <summary>Заказ, размещённый в Berg через <c>ordering/place_order.json</c>.</summary>
 7[Table("BergOrders")]
 8public sealed class BergOrder
 9{
 4010    public long Id { get; set; }
 11
 12    /// <summary>Идентификатор заказа на стороне Berg — по нему запрашиваются статусы.</summary>
 3313    public long ExternalOrderId { get; set; }
 14
 15    /// <summary>Числовой ключ идемпотентности, переданный в order[reference].</summary>
 216    public long? Reference { get; set; }
 17
 218    public int DispatchType { get; set; }
 219    public DateTime DispatchAt { get; set; }
 220    public int DispatchTime { get; set; }
 221    public long? ShipmentAddressId { get; set; }
 222    [MaxLength(300)] public string? ShipmentAddress { get; set; }
 223    public int? PaymentType { get; set; }
 24
 25    /// <summary>Заказ размещён в режиме проверки: Berg сохранил его, но не обрабатывает.</summary>
 426    public bool IsTest { get; set; }
 27
 2928    [Required, MaxLength(50)] public string Status { get; set; } = BergOrderStatus.Placed;
 29
 230    public string? RequestJson { get; set; }
 231    public string? ResponseJson { get; set; }
 32
 233    [MaxLength(450)] public string? CreatedBy { get; set; }
 5234    public DateTime CreatedAtUtc { get; set; } = DateTime.UtcNow;
 35
 2836    public ICollection<BergOrderItem> Items { get; set; } = new List<BergOrderItem>();
 37}
 38
 39public static class BergOrderStatus
 40{
 41    public const string Placed = "Placed";
 42    public const string Test = "Test";
 43}
 44
 45/// <summary>Строка заказа Berg. Статус у Berg живёт на строке, а не на заказе.</summary>
 46[Table("BergOrderItems")]
 47public sealed class BergOrderItem
 48{
 49    public long Id { get; set; }
 50
 51    public long BergOrderId { get; set; }
 52    public BergOrder? BergOrder { get; set; }
 53
 54    public long? BergCartItemId { get; set; }
 55
 56    public int StudioOrderId { get; set; }
 57
 58    /// <summary>sequence — номер строки в заказе Berg.</summary>
 59    public int Sequence { get; set; }
 60
 61    public long ResourceId { get; set; }
 62    public long WarehouseId { get; set; }
 63
 64    [Required, MaxLength(60)] public string Article { get; set; } = string.Empty;
 65    [Required, MaxLength(100)] public string Brand { get; set; } = string.Empty;
 66
 67    public decimal Quantity { get; set; }
 68    public decimal? Price { get; set; }
 69
 70    /// <summary>Идентификатор статуса из справочника references/states.json.</summary>
 71    public int? StateId { get; set; }
 72    [MaxLength(200)] public string? StateName { get; set; }
 73
 74    [MaxLength(1000)] public string? Error { get; set; }
 75}