using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; namespace IM_API.Models; [Table("messages")] [Index("Sender", Name = "Sender")] [MySqlCharSet("utf8mb4")] [MySqlCollation("utf8mb4_general_ci")] public partial class Message { [Key] [Column("ID", TypeName = "int(11)")] public int Id { get; set; } /// /// 聊天类型 /// (0:私聊,1:群聊) /// [Column(TypeName = "tinyint(4)")] public sbyte ChatType { get; set; } /// /// 消息类型 /// (0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天) /// [Column(TypeName = "tinyint(4)")] public sbyte MsgType { get; set; } /// /// 消息内容 /// [Column(TypeName = "text")] public string Content { get; set; } = null!; /// /// 发送者 /// [Column(TypeName = "int(11)")] public int Sender { get; set; } /// /// 接收者(私聊为用户ID,群聊为群聊ID) /// [Column(TypeName = "int(11)")] public int Recipient { get; set; } /// /// 消息状态(0:已发送,1:已撤回) /// [Column(TypeName = "tinyint(4)")] public sbyte State { get; set; } /// /// 发送时间 /// [Column(TypeName = "datetime")] public DateTime Created { get; set; } [InverseProperty("LastMessage")] public virtual ICollection Conversations { get; set; } = new List(); [InverseProperty("MessageldNavigation")] public virtual ICollection Files { get; set; } = new List(); [ForeignKey("Sender")] [InverseProperty("Messages")] public virtual User SenderNavigation { get; set; } = null!; }