Files
elwig/Elwig/Models/AreaComType.cs

46 lines
1.5 KiB
C#

using Elwig.Helpers;
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
using IndexAttribute = Microsoft.EntityFrameworkCore.IndexAttribute;
namespace Elwig.Models {
[Table("area_commitment_type"), PrimaryKey("VtrgId"), Index("SortId", "AttrId", "Discriminator")]
public class AreaComType {
[Column("vtrgid")]
public string VtrgId { get; set; }
[Column("sortid")]
public string SortId { get; set; }
[Column("attrid")]
public string? AttrId { get; set; }
[Column("disc")]
public string? Discriminator { get; set; }
[Column("min_kg_per_ha")]
public int? MinKgPerHa { get; set; }
[Column("max_kg_per_ha")]
public int? MaxKgPerHa { get; set; }
[Column("penalty_amount")]
public long? PenaltyAmoutValue { get; set; }
[NotMapped]
public decimal? PenaltyAmount {
get => PenaltyAmoutValue != null ? Utils.DecFromDb(PenaltyAmoutValue.Value, 4) : null;
set => PenaltyAmoutValue = value != null ? Utils.DecToDb(value.Value, 4) : null;
}
[ForeignKey("SortId")]
public virtual WineVar WineVar { get; private set; }
[ForeignKey("AttrId")]
public virtual WineAttr? WineAttr { get; private set; }
[NotMapped]
public string DisplayName => WineVar.Name + (WineAttr != null ? $" {WineAttr.Name}" : "") + (Discriminator != null ? $" ({Discriminator})" : "");
}
}