using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace Elwig.Models.Entities {
    [Table("wb_kg"), PrimaryKey("KgNr")]
    public class WbKg {
        [Column("kgnr")]
        public int KgNr { get; set; }

        [Column("glnr")]
        public int? GlNr { get; set; }

        [ForeignKey("KgNr")]
        public virtual AT_Kg AtKg { get; private set; } = null!;

        [ForeignKey("GlNr")]
        public virtual WbGl? Gl { get; private set; } = null!;

        [InverseProperty(nameof(WbRd.Kg))]
        public virtual ICollection<WbRd> Rds { get; private set; } = null!;

        [InverseProperty(nameof(Member.DefaultWbKg))]
        public virtual ICollection<Member> Members { get; private set; } = null!;

        [NotMapped]
        public WbGem Gem => AtKg.Gem.WbGem!;

        [NotMapped]
        public WineOrigin Origin => Gem.Origin;
    }
}
