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

namespace Elwig.Models.Entities {
    [Table("payment_member"), PrimaryKey("Year", "AvNr", "MgNr")]
    public class PaymentMember {
        [Column("year")]
        public int Year { get; set; }

        [Column("avnr")]
        public int AvNr { get; set; }

        [Column("mgnr")]
        public int MgNr { get; set; }

        [Column("amount")]
        public long AmountValue { get; set; }

        [NotMapped]
        public decimal Amount {
            get => Variant.Season.DecFromDb(AmountValue);
            set => AmountValue = Variant.Season.DecToDb(value);
        }

        [ForeignKey("Year, AvNr")]
        public virtual PaymentVar Variant { get; private set; }

        [ForeignKey("MgNr")]
        public virtual Member Member { get; private set; }

        [InverseProperty("Payment")]
        public virtual Credit? Credit { get; private set; }
    }
}