Files
elwig/Elwig/Models/PaymentVar.cs
2023-09-12 21:40:04 +02:00

90 lines
2.6 KiB
C#

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
namespace Elwig.Models {
[Table("payment_variant"), PrimaryKey("Year", "AvNr")]
public class PaymentVar {
[Column("year")]
public int Year { get; set; }
[Column("avnr")]
public int AvNr { get; set; }
[Column("name")]
public string Name { get; set; }
[Column("date")]
public string DateString { get; set; }
[NotMapped]
public DateOnly Date {
get => DateOnly.ParseExact(DateString, "yyyy-MM-dd");
set => DateString = value.ToString("yyyy-MM-dd");
}
[Column("transfer_date")]
public string? TransferDateString { get; set; }
[NotMapped]
public DateOnly? TransferDate {
get => TransferDateString != null ? DateOnly.ParseExact(TransferDateString, "yyyy-MM-dd") : null;
set => TransferDateString = value?.ToString("yyyy-MM-dd");
}
[Column("test_variant")]
public bool TestVariant { get; set; }
[Column("calc_time")]
public int? CalcTime { get; set; }
[Column("bucket_1_name")]
public string? Bucket1Name { get; set; }
[Column("bucket_2_name")]
public string? Bucket2Name { get; set; }
[Column("bucket_3_name")]
public string? Bucket3Name { get; set; }
[Column("bucket_4_name")]
public string? Bucket4Name { get; set; }
[Column("bucket_5_name")]
public string? Bucket5Name { get; set; }
[Column("bucket_6_name")]
public string? Bucket6Name { get; set; }
[Column("bucket_7_name")]
public string? Bucket7Name { get; set; }
[Column("bucket_8_name")]
public string? Bucket8Name { get; set; }
[Column("bucket_9_name")]
public string? Bucket9Name { get; set; }
[NotMapped]
public string[] BucketNames => (new string?[] { Bucket1Name, Bucket2Name, Bucket3Name, Bucket4Name, Bucket5Name, Bucket6Name, Bucket7Name, Bucket8Name, Bucket9Name })
.Where(n => n != null).Select(n => n ?? "").ToArray();
[Column("comment")]
public string? Comment { get; set; }
[Column("data")]
public string Data { get; set; }
[ForeignKey("Year")]
public virtual Season Season { get; private set; }
[InverseProperty("Variant")]
public virtual ISet<PaymentMember> MemberPayments { get; private set; }
[InverseProperty("Variant")]
public virtual ISet<Credit> Credits { get; private set; }
}
}