using Elwig.Helpers; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace Elwig.Models.Entities { [Table("delivery_announcement"), PrimaryKey("Year", "DsNr", "MgNr", "SortId")] public class DeliveryAncmt { [Column("year")] public int Year { get; set; } [Column("dsnr")] public int DsNr { get; set; } [Column("mgnr")] public int MgNr { get; set; } [Column("sortid")] public required string SortId { get; set; } [Column("weight")] public int Weight { get; set; } [Column("type")] public required string Type { get; set; } [Column("ctime"), DatabaseGenerated(DatabaseGeneratedOption.Computed)] public long CTime { get; private set; } [NotMapped] public DateTime CreatedTimestamp => DateTimeOffset.FromUnixTimeSeconds(CTime).LocalDateTime; [Column("mtime"), DatabaseGenerated(DatabaseGeneratedOption.Computed)] public long MTime { get; private set; } [NotMapped] public DateTime ModifiedTimestamp => DateTimeOffset.FromUnixTimeSeconds(MTime).LocalDateTime; [ForeignKey("Year, DsNr")] public virtual DeliverySchedule Schedule { get; private set; } = null!; [ForeignKey("MgNr")] public virtual Member Member { get; private set; } = null!; [ForeignKey("SortId")] public virtual WineVar Variety { get; private set; } = null!; public int SearchScore(IEnumerable keywords) { return Utils.GetSearchScore([ Schedule.Description, Member.Name, Member.MiddleName, Member.GivenName, Member.BillingAddress?.FullName, ], keywords); } } }