50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
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<WineQualLevel> {
|
|
[Column("qualid")]
|
|
public string QualId { get; private set; } = null!;
|
|
|
|
[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; } = null!;
|
|
|
|
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));
|
|
}
|
|
|
|
public override int GetHashCode() {
|
|
return QualId.GetHashCode();
|
|
}
|
|
}
|
|
}
|