using SqlSugar;
using Volo.Abp.Auditing;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities;

namespace NPin.Framework.Upms.Domain.Entities;

[SugarTable("File", "文件信息表")]
public class FileAggregateRoot : AggregateRoot<Guid>, IAuditedObject
{
    [SugarColumn(IsPrimaryKey = true, ColumnDescription = "主键")]
    public override Guid Id { get; protected set; }

    [SugarColumn(ColumnDescription = "文件大小")]
    public decimal FileSize { get; set; }

    [SugarColumn(ColumnDescription = "文件名称")]
    public string FileName { get; set; }

    [SugarColumn(ColumnDescription = "文件后缀")]
    public string FileExt { get; set; }

    [SugarColumn(ColumnDescription = "文件路径")]
    public string FilePath { get; set; }

    public DateTime CreationTime { get; }
    public Guid? CreatorId { get; }
    public DateTime? LastModificationTime { get; }
    public Guid? LastModifierId { get; }

    [SugarColumn(IsIgnore = true)] public override ExtraPropertyDictionary ExtraProperties { get; protected set; }

    public FileAggregateRoot()
    {
    }

    public FileAggregateRoot(Guid id) : base(id)
    {
        Id = id;
    }
}