using Elwig.Helpers; using Microsoft.EntityFrameworkCore; using System; using System.ComponentModel.DataAnnotations.Schema; namespace Elwig.Models.Entities { [Table("member_history"), PrimaryKey("HistNr")] public class MemberHistory { [Column("histnr")] public int HistNr { get; set; } [Column("from_mgnr")] public int? FromMgNr { get; set; } [Column("from_type")] public int? FromType { get; set; } [Column("to_mgnr")] public int? ToMgNr { get; set; } [Column("to_type")] public int? ToType { get; set; } [Column("date")] public required string DateString { get; set; } [NotMapped] public DateOnly Date { get => DateOnly.ParseExact(DateString, "yyyy-MM-dd"); set => value.ToString("yyyy-MM-dd"); } [Column("reason")] public required string Reason { get; set; } [Column("source")] public required string Source { get; set; } [Column("shares")] public int Shares { get; set; } [Column("value_per_share")] public long? ValuePerShareValue { get; set; } [NotMapped] public decimal? ValuePerShare { get => ValuePerShareValue != null ? Utils.DecFromDb(ValuePerShareValue.Value, 2) : null; set => ValuePerShareValue = value != null ? Utils.DecToDb(value.Value, 2) : null; } [NotMapped] public decimal? TotalValue => Shares * ValuePerShare; [Column("currency")] public string? CurrencyCode { get; set; } [Column("comment")] public string? Comment { get; set; } [ForeignKey("FromMgNr")] public virtual Member FromMember { get; private set; } = null!; [ForeignKey("ToMgNr")] public virtual Member ToMember { get; private set; } = null!; [ForeignKey("CurrencyCode")] public virtual Currency Currency { get; private set; } = null!; } }