first commot
This commit is contained in:
25
Entity/BaseEntity.cs
Normal file
25
Entity/BaseEntity.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using Yitter.IdGenerator;
|
||||
|
||||
namespace Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 实体基类
|
||||
/// </summary>
|
||||
public abstract class BaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键ID (雪花算法有序ID)
|
||||
/// </summary>
|
||||
[Column(IsPrimary = true)]
|
||||
public long Id { get; set; } = YitIdHelper.NextId();
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
32
Entity/EmailMessage.cs
Normal file
32
Entity/EmailMessage.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
namespace Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 邮件消息实体
|
||||
/// </summary>
|
||||
public class EmailMessage : BaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件主题
|
||||
/// </summary>
|
||||
public string Subject { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮件发送者
|
||||
/// </summary>
|
||||
public string From { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮件正文
|
||||
/// </summary>
|
||||
public string Body { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮件HTML内容
|
||||
/// </summary>
|
||||
public string HtmlBody { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮件接收时间
|
||||
/// </summary>
|
||||
public DateTime ReceivedDate { get; set; }
|
||||
}
|
||||
6
Entity/Entity.csproj
Normal file
6
Entity/Entity.csproj
Normal file
@@ -0,0 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="FreeSql" />
|
||||
<PackageReference Include="Yitter.IdGenerator" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
1
Entity/GlobalUsings.cs
Normal file
1
Entity/GlobalUsings.cs
Normal file
@@ -0,0 +1 @@
|
||||
global using FreeSql.DataAnnotations;
|
||||
47
Entity/TransactionCategory.cs
Normal file
47
Entity/TransactionCategory.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
namespace Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 交易分类(层级结构:类型 -> 分类 -> 子分类)
|
||||
/// </summary>
|
||||
public class TransactionCategory : BaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// 分类名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 父分类ID(0表示顶级分类)
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 交易类型(支出/收入)
|
||||
/// </summary>
|
||||
public TransactionType Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 层级(1=类型级, 2=分类级, 3=子分类级)
|
||||
/// </summary>
|
||||
public int Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序号
|
||||
/// </summary>
|
||||
public int SortOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图标(可选)
|
||||
/// </summary>
|
||||
public string? Icon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用
|
||||
/// </summary>
|
||||
public bool IsEnabled { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
85
Entity/TransactionRecord.cs
Normal file
85
Entity/TransactionRecord.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
namespace Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 银行交易记录(由邮件解析生成)
|
||||
/// </summary>
|
||||
public class TransactionRecord : BaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// 卡号或账户标识
|
||||
/// </summary>
|
||||
public string Card { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 交易原因/摘要
|
||||
/// </summary>
|
||||
public string Reason { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 交易金额
|
||||
/// </summary>
|
||||
public decimal Amount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 退款金额
|
||||
/// </summary>
|
||||
public decimal RefundAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 交易后余额
|
||||
/// </summary>
|
||||
public decimal Balance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发生时间(邮件中的交易时间)
|
||||
/// </summary>
|
||||
public DateTime OccurredAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原始邮件记录ID
|
||||
/// </summary>
|
||||
public long EmailMessageId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 交易类型
|
||||
/// </summary>
|
||||
public TransactionType Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 交易分类
|
||||
/// </summary>
|
||||
public string Classify { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 交易子分类
|
||||
/// </summary>
|
||||
public string SubClassify { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 导入编号
|
||||
/// </summary>
|
||||
public string ImportNo { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 导入来源
|
||||
/// </summary>
|
||||
public string ImportFrom { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public enum TransactionType
|
||||
{
|
||||
/// <summary>
|
||||
/// 支出
|
||||
/// </summary>
|
||||
Expense = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 收入
|
||||
/// </summary>
|
||||
Income = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 不计入收支
|
||||
/// </summary>
|
||||
None = 2
|
||||
}
|
||||
27
Entity/WeatherForecast.cs
Normal file
27
Entity/WeatherForecast.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
namespace Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 天气预报实体
|
||||
/// </summary>
|
||||
public class WeatherForecast : BaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// 日期
|
||||
/// </summary>
|
||||
public DateOnly Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 摄氏温度
|
||||
/// </summary>
|
||||
public int TemperatureC { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 摄氏度转华氏度
|
||||
/// </summary>
|
||||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||
|
||||
/// <summary>
|
||||
/// 天气摘要
|
||||
/// </summary>
|
||||
public string? Summary { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user