< Summary

Information
Class: OzonDomains.Models.ZZapCartItem
Assembly: OzonDomains
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/ZZapCartItem.cs
Line coverage
100%
Covered lines: 29
Uncovered lines: 0
Coverable lines: 29
Total lines: 71
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_ProviderKey()100%11100%
get_StudioOrderId()100%11100%
get_ActiveStudioOrderId()100%11100%
get_StudioOrder()100%11100%
get_CodeDocB()100%11100%
get_CodeOrder()100%11100%
get_CodeRegion()100%11100%
get_Article()100%11100%
get_Brand()100%11100%
get_ProductName()100%11100%
get_SellerName()100%11100%
get_SellerUserKey()100%11100%
get_SellerLocation()100%11100%
get_Quantity()100%11100%
get_MinimumQuantity()100%11100%
get_SourcePrice()100%11100%
get_DeliveryDays()100%11100%
get_MinSumOrder()100%11100%
get_QtyMax()100%11100%
get_Status()100%11100%
get_LastError()100%11100%
get_TestedAtUtc()100%11100%
get_OrderedAtUtc()100%11100%
get_ExternalStatusCode()100%11100%
get_ExternalStatusName()100%11100%
get_CreatedBy()100%11100%
get_CreatedAtUtc()100%11100%
get_UpdatedAtUtc()100%11100%

File(s)

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

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2using System.ComponentModel.DataAnnotations.Schema;
 3
 4namespace OzonDomains.Models;
 5
 6/// <summary>Зеркало корзины ZZap в Studio2. Сама корзина живёт у ZZap: POST /cart сразу кладёт позицию
 7/// туда и возвращает code_order, который после POST /cart/order становится номером заказа. Строка
 8/// хранит связь этого кода с заказом Studio2 и снимок предложения (продавец, цена, срок).</summary>
 9[Table("ZZapCartItems")]
 10public sealed class ZZapCartItem
 11{
 3312    public long Id { get; set; }
 13
 13514    [Required, MaxLength(64)] public string ProviderKey { get; set; } = ApiSupplierSettings.ZZapMoscowProviderKey;
 15
 9916    public int StudioOrderId { get; set; }
 17
 18    /// <summary>Заполнено, пока строка активна; уникальный индекс по нему защищает от дублей.</summary>
 4519    public int? ActiveStudioOrderId { get; set; }
 1120    public Order? StudioOrder { get; set; }
 21
 22    /// <summary>code_doc_b — идентификатор предложения продавца в выдаче поиска.</summary>
 9623    [Required, MaxLength(40)] public string CodeDocB { get; set; } = string.Empty;
 24
 25    /// <summary>code_order — код позиции корзины ZZap; после оформления это же номер заказа.</summary>
 11826    public long CodeOrder { get; set; }
 27
 28    /// <summary>Регион поиска, под которым получено предложение; уходит в POST /cart и /cart/order как есть.</summary>
 1929    public int CodeRegion { get; set; }
 30
 12831    [Required, MaxLength(80)] public string Article { get; set; } = string.Empty;
 9632    [Required, MaxLength(120)] public string Brand { get; set; } = string.Empty;
 1033    [MaxLength(255)] public string? ProductName { get; set; }
 34
 1635    [MaxLength(200)] public string? SellerName { get; set; }
 1436    [MaxLength(255)] public string? SellerUserKey { get; set; }
 1337    [MaxLength(200)] public string? SellerLocation { get; set; }
 38
 3039    public int Quantity { get; set; }
 1740    public int MinimumQuantity { get; set; }
 1641    public decimal? SourcePrice { get; set; }
 1942    public int DeliveryDays { get; set; }
 43
 44    /// <summary>Ограничения продавца на момент добавления: минимальная сумма заказа и максимум к заказу.</summary>
 1545    public decimal? MinSumOrder { get; set; }
 1346    public int? QtyMax { get; set; }
 47
 18248    [Required, MaxLength(20)] public string Status { get; set; } = ZZapCartItemStatus.Pending;
 1649    [MaxLength(1000)] public string? LastError { get; set; }
 2050    public DateTime? TestedAtUtc { get; set; }
 3451    public DateTime? OrderedAtUtc { get; set; }
 52
 53    /// <summary>Последний известный статус заказа у ZZap (code_track / class_track), обновляется опросом.</summary>
 2254    public int? ExternalStatusCode { get; set; }
 2355    [MaxLength(120)] public string? ExternalStatusName { get; set; }
 56
 857    [MaxLength(450)] public string? CreatedBy { get; set; }
 7258    public DateTime CreatedAtUtc { get; set; } = DateTime.UtcNow;
 10159    public DateTime UpdatedAtUtc { get; set; } = DateTime.UtcNow;
 60}
 61
 62public static class ZZapCartItemStatus
 63{
 64    public const string Pending = "Pending";
 65    public const string Ready = "Ready";
 66    public const string Processing = "Processing";
 67    public const string Ordered = "Ordered";
 68    public const string Failed = "Failed";
 69    public const string Removed = "Removed";
 70    public static readonly string[] Active = [Pending, Ready, Processing, Failed];
 71}