2026-01-09 14:03:01 +08:00
|
|
|
|
namespace Entity;
|
|
|
|
|
|
|
|
|
|
|
|
public class BudgetArchive : BaseEntity
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// 归档目标年份
|
2026-01-09 14:03:01 +08:00
|
|
|
|
/// </summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
public int Year { get; set; }
|
2026-01-09 14:03:01 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// 归档目标月份
|
2026-01-09 14:03:01 +08:00
|
|
|
|
/// </summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
public int Month { get; set; }
|
2026-01-09 14:03:01 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// 归档内容
|
2026-01-09 14:03:01 +08:00
|
|
|
|
/// </summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
[JsonMap]
|
|
|
|
|
|
public BudgetArchiveContent[] Content { get; set; } = [];
|
2026-01-09 14:03:01 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// 归档日期
|
2026-01-09 14:03:01 +08:00
|
|
|
|
/// </summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
public DateTime ArchiveDate { get; set; } = DateTime.Now;
|
2026-01-09 14:03:01 +08:00
|
|
|
|
|
2026-01-15 20:00:41 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 支出结余(预算 - 实际,正数表示省钱,负数表示超支)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public decimal ExpenseSurplus { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 收入结余(实际 - 预算,正数表示超额收入,负数表示未达预期)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public decimal IncomeSurplus { get; set; }
|
|
|
|
|
|
|
2026-01-12 22:29:39 +08:00
|
|
|
|
public string? Summary { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public record BudgetArchiveContent
|
|
|
|
|
|
{
|
2026-01-11 16:33:55 +08:00
|
|
|
|
/// <summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// 预算名称
|
2026-01-11 16:33:55 +08:00
|
|
|
|
/// </summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
public string Name { get; set; } = string.Empty;
|
2026-01-11 16:33:55 +08:00
|
|
|
|
|
2026-01-09 14:03:01 +08:00
|
|
|
|
/// <summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// 统计周期
|
2026-01-09 14:03:01 +08:00
|
|
|
|
/// </summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
public BudgetPeriodType Type { get; set; } = BudgetPeriodType.Month;
|
2026-01-09 14:03:01 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// 预算金额
|
2026-01-09 14:03:01 +08:00
|
|
|
|
/// </summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
public decimal Limit { get; set; }
|
2026-01-09 14:03:01 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// 实际金额
|
2026-01-09 14:03:01 +08:00
|
|
|
|
/// </summary>
|
2026-01-12 22:29:39 +08:00
|
|
|
|
public decimal Actual { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 预算类别
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public BudgetCategory Category { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 相关分类 (逗号分隔的分类名称)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string[] SelectedCategories { get; set; } = [];
|
|
|
|
|
|
|
2026-01-15 10:53:05 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 不记额预算
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public bool NoLimit { get; set; } = false;
|
|
|
|
|
|
|
2026-01-16 23:18:04 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 硬性消费
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public bool IsMandatoryExpense { get; set; } = false;
|
|
|
|
|
|
|
2026-01-12 22:29:39 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 描述说明
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string Description { get; set; } = string.Empty;
|
|
|
|
|
|
}
|