< Summary

Information
Class: OzonDomains.Models.OrderSearchSyncState
Assembly: OzonDomains
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/OrderSearchSyncState.cs
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
Total lines: 29
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_LastSyncedAt()100%11100%
get_LastSyncedOrderId()100%11100%
get_LastFullReindexAt()100%11100%

File(s)

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

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2using System.ComponentModel.DataAnnotations.Schema;
 3
 4namespace OzonDomains.Models;
 5
 6/// <summary>
 7/// Singleton-строка (Id = 1) с checkpoint'ом инкрементальной синхронизации индекса
 8/// заказов в Elasticsearch. Обновляется <c>OrderSearchIncrementalSyncJob</c>/<c>OrderSearchFullReindexJob</c>.
 9/// </summary>
 10[Table("OrderSearchSyncState")]
 11public class OrderSearchSyncState
 12{
 13    [Key]
 14    [DatabaseGenerated(DatabaseGeneratedOption.None)]
 315    public int Id { get; set; } = 1;
 16
 17    /// <summary>Время последнего обработанного заказа в инкрементальном проходе.</summary>
 218    public DateTime? LastSyncedAt { get; set; }
 19
 20    /// <summary>
 21    /// Идентификатор последнего заказа с <see cref="LastSyncedAt"/>.
 22    /// Вместе с временем образует стабильный checkpoint для массовых обновлений,
 23    /// в которых у нескольких заказов одинаковый UpdatedAt.
 24    /// </summary>
 125    public int LastSyncedOrderId { get; set; }
 26
 27    /// <summary>Момент последней полной переиндексации.</summary>
 228    public DateTime? LastFullReindexAt { get; set; }
 29}