using ROLAC.API.Entities.Base;
namespace ROLAC.API.Entities;

/// <summary>
/// A reusable template of a vendor payment. Lets finance save a recurring fixed expense
/// (rent, internet, a fixed catered-meal cost) and re-apply it later, pre-filling everything
/// except the ExpenseDate. Shared church-wide; the creator is the auditable CreatedBy.
/// Lines are wholly owned by the header (replaced as a set on update, like ExpenseLine).
/// </summary>
public class ExpenseSnapshot : SoftDeleteEntity
{
    public int      Id          { get; set; }
    public string   Name        { get; set; } = null!;   // user label, e.g. "Monthly Rent — Landlord X"
    public int      MinistryId  { get; set; }
    public string   Description { get; set; } = null!;
    public string?  VendorName  { get; set; }
    public string?  CheckNumber { get; set; }
    public string?  Notes       { get; set; }

    public Ministry?                 Ministry { get; set; }
    public List<ExpenseSnapshotLine> Lines    { get; set; } = new();
}
