using KLHZ.Trader.Core.Contracts.Messaging.Dtos; using KLHZ.Trader.Core.Contracts.Messaging.Dtos.Interfaces; using System.ComponentModel.DataAnnotations.Schema; namespace KLHZ.Trader.Core.DataLayer.Entities.Prices { [Table("price_changes")] public class PriceChange : ITradeDataItem { [Column("id")] public long Id { get; set; } [Column("time")] public DateTime Time { get; set; } [Column("value")] public decimal Price { get; set; } [Column("figi")] public required string Figi { get; set; } [Column("ticker")] public required string Ticker { get; set; } [NotMapped] public bool IsHistoricalData { get; set; } [Column("count")] public long Count { get; set; } [Column("direction")] public int Direction { get; set; } [NotMapped] public decimal Value { get; set; } [NotMapped] public decimal Value2 { get; set; } [NotMapped] public AttachedInfo? AttachedInfo { get { lock (_locker) { return _attachedInfo; } } } public void SetAttachedInfo(AttachedInfo? attachedInfo) { lock (_locker) { _attachedInfo = attachedInfo; } } private AttachedInfo? _attachedInfo; private readonly object _locker = new(); } }