using MessagePack;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XPrintServer.DataModel.Models
{
    ///<summary>
    ///事件日志表
    ///</summary>
    [SugarIndex("idx_{split_table}_create_time", nameof(CreateTime), OrderByType.Desc)]
    [SplitTable(SplitType.Year)]//按年分表 （自带分表支持 年、季、月、周、日）
    [SugarTable("action_log_{year}{month}{day}")]//3个变量必须要有，这么设计为了兼容开始按年，后面改成按月、按日
    public partial class ActionLog
    {
        public ActionLog()
        {
        }

        /// <summary>
        /// Desc:Id
        /// Default:
        /// Nullable:False
        /// </summary>           
        [Key("Id")]
        [SugarColumn(IsPrimaryKey = true, ColumnDescription = "主键Id")]
        public Guid Id { get; set; }

        /// <summary>
        /// Desc:日志标题
        /// Default:
        /// Nullable:False
        [Key("Title")]
        [SugarColumn(IsNullable = false, ColumnDescription = "日志标题")]
        public string Title { get; set; } = null!;

        /// <summary>
        /// Desc:日志内容
        /// Default:
        /// Nullable:True
        [Key("Content")]
        [SugarColumn(IsNullable = true, ColumnDataType = "text", ColumnDescription = "日志内容")]
        public string? Content { get; set; }

        /// <summary>
        /// Desc:记录时间
        /// Default:
        /// Nullable:False
        [Key("Content")]
        [SugarColumn(IsNullable = false, ColumnDescription = "记录时间")]
        public DateTime DateTime { get; set; }


        /// <summary>
        /// 分表字段 在插入的时候会根据这个字段插入哪个表，在更新删除的时候用这个字段找出相关表
        /// </summary>
        [Key("CreateTime")]
        [SplitField] //分表字段 在插入的时候会根据这个字段插入哪个表，在更新删除的时候用这个字段找出相关表
        public DateTime CreateTime { get; set; }

    }
}
