using Elwig.Helpers; using Microsoft.EntityFrameworkCore; using System; using System.ComponentModel.DataAnnotations.Schema; namespace Elwig.Models.Entities { [Table("wine_quality_level"), PrimaryKey("QualId")] public class WineQualLevel : IEquatable { [Column("qualid")] public string QualId { get; private set; } [Column("origin_level")] public int? OriginLevel { get; private set; } [Column("predicate")] public bool IsPredicate { get; private set; } [Column("min_kmw")] public double? MinKmw { get; private set; } [NotMapped] public double? MinOe => MinKmw != null ? Utils.KmwToOe((double)MinKmw) : null; [Column("name")] public string Name { get; private set; } public string MinKmwStr => (MinKmw == null) ? "" : $"(mind. {MinKmw:#.0}°)"; public override bool Equals(object? obj) { return Equals(obj as WineQualLevel); } public bool Equals(WineQualLevel? obj) { return QualId == obj?.QualId; } public static bool operator ==(WineQualLevel? q1, WineQualLevel? q2) { return q1?.Equals(q2) ?? Equals(q1, q2); } public static bool operator !=(WineQualLevel? q1, WineQualLevel? q2) { return !(q1?.Equals(q2) ?? Equals(q1, q2)); } } }