< Summary

Information
Class: OzonDomains.Models.BergOrderItem
Assembly: OzonDomains
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/BergOrder.cs
Line coverage
93%
Covered lines: 14
Uncovered lines: 1
Coverable lines: 15
Total lines: 75
Line coverage: 93.3%
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_BergOrderId()100%11100%
get_BergOrder()100%11100%
get_BergCartItemId()100%11100%
get_StudioOrderId()100%11100%
get_Sequence()100%11100%
get_ResourceId()100%11100%
get_WarehouseId()100%11100%
get_Article()100%11100%
get_Brand()100%11100%
get_Quantity()100%11100%
get_Price()100%11100%
get_StateId()100%11100%
get_StateName()100%11100%
get_Error()100%210%

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{
 10    public long Id { get; set; }
 11
 12    /// <summary>Идентификатор заказа на стороне Berg — по нему запрашиваются статусы.</summary>
 13    public long ExternalOrderId { get; set; }
 14
 15    /// <summary>Числовой ключ идемпотентности, переданный в order[reference].</summary>
 16    public long? Reference { get; set; }
 17
 18    public int DispatchType { get; set; }
 19    public DateTime DispatchAt { get; set; }
 20    public int DispatchTime { get; set; }
 21    public long? ShipmentAddressId { get; set; }
 22    [MaxLength(300)] public string? ShipmentAddress { get; set; }
 23    public int? PaymentType { get; set; }
 24
 25    /// <summary>Заказ размещён в режиме проверки: Berg сохранил его, но не обрабатывает.</summary>
 26    public bool IsTest { get; set; }
 27
 28    [Required, MaxLength(50)] public string Status { get; set; } = BergOrderStatus.Placed;
 29
 30    public string? RequestJson { get; set; }
 31    public string? ResponseJson { get; set; }
 32
 33    [MaxLength(450)] public string? CreatedBy { get; set; }
 34    public DateTime CreatedAtUtc { get; set; } = DateTime.UtcNow;
 35
 36    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{
 2549    public long Id { get; set; }
 50
 2551    public long BergOrderId { get; set; }
 2552    public BergOrder? BergOrder { get; set; }
 53
 254    public long? BergCartItemId { get; set; }
 55
 2756    public int StudioOrderId { get; set; }
 57
 58    /// <summary>sequence — номер строки в заказе Berg.</summary>
 2859    public int Sequence { get; set; }
 60
 261    public long ResourceId { get; set; }
 262    public long WarehouseId { get; set; }
 63
 3564    [Required, MaxLength(60)] public string Article { get; set; } = string.Empty;
 3565    [Required, MaxLength(100)] public string Brand { get; set; } = string.Empty;
 66
 267    public decimal Quantity { get; set; }
 268    public decimal? Price { get; set; }
 69
 70    /// <summary>Идентификатор статуса из справочника references/states.json.</summary>
 371    public int? StateId { get; set; }
 272    [MaxLength(200)] public string? StateName { get; set; }
 73
 074    [MaxLength(1000)] public string? Error { get; set; }
 75}