< Summary

Information
Class: OzonDomains.Models.OrderOzonPromotionSnapshot
Assembly: OzonDomains
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/OrderOzonPromotionSnapshot.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 37
Coverable lines: 37
Total lines: 67
Line coverage: 0%
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

File(s)

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

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2using System.ComponentModel.DataAnnotations.Schema;
 3
 4namespace OzonDomains.Models;
 5
 6/// <summary>Неизменяемый снимок цен и условий продвижения Ozon на момент импорта заказа.</summary>
 7public sealed class OrderOzonPromotionSnapshot
 8{
 09    public int Id { get; set; }
 10
 011    public int OrderId { get; set; }
 012    public int? OzonClientId { get; set; }
 013    public long OzonProductId { get; set; }
 14
 15    [MaxLength(255)]
 016    public string OfferId { get; set; } = string.Empty;
 17
 018    public DateTime CapturedAt { get; set; }
 19
 20    [MaxLength(32)]
 021    public string EnrichmentStatus { get; set; } = OzonPromotionSnapshotStatus.Completed;
 22
 023    public bool HasAnyPromotion { get; set; }
 024    public bool OzonActionsExist { get; set; }
 025    public bool AutoActionEnabled { get; set; }
 026    public bool AutoAddToOzonActionsListEnabled { get; set; }
 27
 28    [MaxLength(10)]
 029    public string CurrencyCode { get; set; } = "RUB";
 30
 031    [Column(TypeName = "decimal(18,2)")] public decimal MarketingPrice { get; set; }
 032    [Column(TypeName = "decimal(18,2)")] public decimal MarketingSellerPrice { get; set; }
 033    [Column(TypeName = "decimal(18,2)")] public decimal MinPrice { get; set; }
 034    [Column(TypeName = "decimal(18,2)")] public decimal OldPrice { get; set; }
 035    [Column(TypeName = "decimal(18,2)")] public decimal Price { get; set; }
 036    [Column(TypeName = "decimal(18,2)")] public decimal RetailPrice { get; set; }
 037    [Column(TypeName = "decimal(18,2)")] public decimal NetPrice { get; set; }
 038    [Column(TypeName = "decimal(18,2)")] public decimal Vat { get; set; }
 039    [Column(TypeName = "decimal(18,2)")] public decimal Acquiring { get; set; }
 040    [Column(TypeName = "decimal(18,3)")] public decimal VolumeWeight { get; set; }
 41
 042    [Column(TypeName = "decimal(18,2)")] public decimal FboCommissionPercent { get; set; }
 043    [Column(TypeName = "decimal(18,2)")] public decimal FbsCommissionPercent { get; set; }
 044    [Column(TypeName = "decimal(18,2)")] public decimal FbsDeliveryToCustomerAmount { get; set; }
 045    [Column(TypeName = "decimal(18,2)")] public decimal FbsFirstMileMinAmount { get; set; }
 046    [Column(TypeName = "decimal(18,2)")] public decimal FbsFirstMileMaxAmount { get; set; }
 047    [Column(TypeName = "decimal(18,2)")] public decimal FbsDirectFlowMinAmount { get; set; }
 048    [Column(TypeName = "decimal(18,2)")] public decimal FbsDirectFlowMaxAmount { get; set; }
 049    [Column(TypeName = "decimal(18,4)")] public decimal ExternalPriceIndex { get; set; }
 050    [Column(TypeName = "decimal(18,4)")] public decimal OzonPriceIndex { get; set; }
 051    [Column(TypeName = "decimal(18,4)")] public decimal SelfMarketplacePriceIndex { get; set; }
 52
 053    public DateTime? CurrentPeriodFrom { get; set; }
 054    public DateTime? CurrentPeriodTo { get; set; }
 55
 56    [Column(TypeName = "longtext")]
 057    public string RawPricePayload { get; set; } = "{}";
 58
 059    public Order Order { get; set; } = null!;
 060    public List<OrderOzonPromotionCondition> Conditions { get; set; } = [];
 61}
 62
 63public static class OzonPromotionSnapshotStatus
 64{
 65    public const string Completed = "Completed";
 66    public const string Failed = "Failed";
 67}