diff --git a/backend/IM_API/.gitignore b/backend/IM_API/.gitignore new file mode 100644 index 0000000..3e16852 --- /dev/null +++ b/backend/IM_API/.gitignore @@ -0,0 +1,3 @@ +bin/ +obj/ +.vs/ \ No newline at end of file diff --git a/backend/IM_API/.vs/IM_API/FileContentIndex/31857466-161e-4d34-a7d1-f5b63df60933.vsidx b/backend/IM_API/.vs/IM_API/FileContentIndex/31857466-161e-4d34-a7d1-f5b63df60933.vsidx deleted file mode 100644 index 6942408..0000000 Binary files a/backend/IM_API/.vs/IM_API/FileContentIndex/31857466-161e-4d34-a7d1-f5b63df60933.vsidx and /dev/null differ diff --git a/backend/IM_API/.vs/IM_API/v17/.futdcache.v2 b/backend/IM_API/.vs/IM_API/v17/.futdcache.v2 deleted file mode 100644 index e1a444d..0000000 Binary files a/backend/IM_API/.vs/IM_API/v17/.futdcache.v2 and /dev/null differ diff --git a/backend/IM_API/.vs/IM_API/v17/.suo b/backend/IM_API/.vs/IM_API/v17/.suo deleted file mode 100644 index ff48bb4..0000000 Binary files a/backend/IM_API/.vs/IM_API/v17/.suo and /dev/null differ diff --git a/backend/IM_API/.vs/IM_API/v17/DocumentLayout.backup.json b/backend/IM_API/.vs/IM_API/v17/DocumentLayout.backup.json deleted file mode 100644 index a8a1bc0..0000000 --- a/backend/IM_API/.vs/IM_API/v17/DocumentLayout.backup.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Version": 1, - "WorkspaceRootPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\", - "Documents": [], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [] - } - ] -} \ No newline at end of file diff --git a/backend/IM_API/.vs/IM_API/v17/DocumentLayout.json b/backend/IM_API/.vs/IM_API/v17/DocumentLayout.json deleted file mode 100644 index a8a1bc0..0000000 --- a/backend/IM_API/.vs/IM_API/v17/DocumentLayout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Version": 1, - "WorkspaceRootPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\", - "Documents": [], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [] - } - ] -} \ No newline at end of file diff --git a/backend/IM_API/.vs/ProjectEvaluation/im_api.metadata.v9.bin b/backend/IM_API/.vs/ProjectEvaluation/im_api.metadata.v9.bin deleted file mode 100644 index b7d05e1..0000000 Binary files a/backend/IM_API/.vs/ProjectEvaluation/im_api.metadata.v9.bin and /dev/null differ diff --git a/backend/IM_API/.vs/ProjectEvaluation/im_api.projects.v9.bin b/backend/IM_API/.vs/ProjectEvaluation/im_api.projects.v9.bin deleted file mode 100644 index c7adf26..0000000 Binary files a/backend/IM_API/.vs/ProjectEvaluation/im_api.projects.v9.bin and /dev/null differ diff --git a/backend/IM_API/.vs/ProjectEvaluation/im_api.strings.v9.bin b/backend/IM_API/.vs/ProjectEvaluation/im_api.strings.v9.bin deleted file mode 100644 index aa715ce..0000000 Binary files a/backend/IM_API/.vs/ProjectEvaluation/im_api.strings.v9.bin and /dev/null differ diff --git a/backend/IM_API/IM_API.csproj b/backend/IM_API/IM_API.csproj index 56c794c..4610176 100644 --- a/backend/IM_API/IM_API.csproj +++ b/backend/IM_API/IM_API.csproj @@ -10,7 +10,16 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/backend/IM_API/Models/Admin.cs b/backend/IM_API/Models/Admin.cs new file mode 100644 index 0000000..0a848d5 --- /dev/null +++ b/backend/IM_API/Models/Admin.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("admins")] +[Index("RoleId", Name = "RoleId")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Admin +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 用户名 + /// + [StringLength(50)] + public string Username { get; set; } = null!; + + /// + /// 密码 + /// + [StringLength(50)] + public string Password { get; set; } = null!; + + /// + /// 角色 + /// + [Column(TypeName = "int(11)")] + public int RoleId { get; set; } + + /// + /// 状态(0:正常,2:封禁) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte State { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + /// + /// 更新时间 + /// + [Column(TypeName = "datetime")] + public DateTime Updated { get; set; } + + [ForeignKey("RoleId")] + [InverseProperty("Admins")] + public virtual Role Role { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Conversation.cs b/backend/IM_API/Models/Conversation.cs new file mode 100644 index 0000000..5862d2a --- /dev/null +++ b/backend/IM_API/Models/Conversation.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("conversations")] +[Index("Userid", Name = "Userid")] +[Index("LastMessageId", Name = "lastMessageId")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Conversation +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 用户 + /// + [Column(TypeName = "int(11)")] + public int Userid { get; set; } + + /// + /// 对方ID(群聊为群聊ID,单聊为单聊ID) + /// + [Column(TypeName = "int(11)")] + public int Targetid { get; set; } + + /// + /// 消息类型(同Messages.MsgType) + /// + [Column(TypeName = "int(11)")] + public int MsgType { get; set; } + + /// + /// 最后一条消息ID + /// + [Column("lastMessageId", TypeName = "int(11)")] + public int LastMessageId { get; set; } + + /// + /// 未读消息数 + /// + [Column("unreadCount", TypeName = "int(11)")] + public int UnreadCount { get; set; } + + [ForeignKey("LastMessageId")] + [InverseProperty("Conversations")] + public virtual Message LastMessage { get; set; } = null!; + + [ForeignKey("Userid")] + [InverseProperty("Conversations")] + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Device.cs b/backend/IM_API/Models/Device.cs new file mode 100644 index 0000000..61e494e --- /dev/null +++ b/backend/IM_API/Models/Device.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("devices")] +[Index("Userid", Name = "Userid")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Device +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 设备所属用户 + /// + [Column(TypeName = "int(11)")] + public int Userid { get; set; } + + /// + /// 设备类型( + /// 0:Android,1:Ios,2:PC,3:Pad,4:未知) + /// + [Column("DType", TypeName = "tinyint(4)")] + public sbyte Dtype { get; set; } + + /// + /// 最后一次登录 + /// + [Column(TypeName = "datetime")] + public DateTime LastLogin { get; set; } + + [ForeignKey("Userid")] + [InverseProperty("Devices")] + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/File.cs b/backend/IM_API/Models/File.cs new file mode 100644 index 0000000..4f0cfd1 --- /dev/null +++ b/backend/IM_API/Models/File.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("files")] +[Index("Messageld", Name = "Messageld")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class File +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 文件名 + /// + [StringLength(50)] + public string Name { get; set; } = null!; + + /// + /// 文件储存URL + /// + [Column("URL")] + [StringLength(100)] + public string Url { get; set; } = null!; + + /// + /// 文件大小(单位:KB) + /// + [Column(TypeName = "int(11)")] + public int Size { get; set; } + + /// + /// 文件类型 + /// + [StringLength(10)] + public string Type { get; set; } = null!; + + /// + /// 关联消息ID + /// + [Column(TypeName = "int(11)")] + public int Messageld { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + [ForeignKey("Messageld")] + [InverseProperty("Files")] + public virtual Message MessageldNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Friend.cs b/backend/IM_API/Models/Friend.cs new file mode 100644 index 0000000..516e47a --- /dev/null +++ b/backend/IM_API/Models/Friend.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("friends")] +[Index("Id", Name = "ID")] +[Index("Userld", "Friendld", Name = "Userld")] +[Index("Friendld", Name = "用户2id")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Friend +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 用户ID + /// + [Column(TypeName = "int(11)")] + public int Userld { get; set; } + + /// + /// 用户2ID + /// + [Column(TypeName = "int(11)")] + public int Friendld { get; set; } + + /// + /// 当前好友关系状态 + /// (0:待通过,1:已添加,2:已拒绝,3:已拉黑) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte Status { get; set; } + + /// + /// 好友关系创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + [ForeignKey("Friendld")] + [InverseProperty("FriendFriendldNavigations")] + public virtual User FriendldNavigation { get; set; } = null!; + + [ForeignKey("Userld")] + [InverseProperty("FriendUserldNavigations")] + public virtual User UserldNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Friendrequest.cs b/backend/IM_API/Models/Friendrequest.cs new file mode 100644 index 0000000..990efe0 --- /dev/null +++ b/backend/IM_API/Models/Friendrequest.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("friendrequest")] +[Index("RequestUser", Name = "RequestUser")] +[Index("ResponseUser", Name = "ResponseUser")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Friendrequest +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 申请人 + /// + [Column(TypeName = "int(11)")] + public int RequestUser { get; set; } + + /// + /// 被申请人 + /// + [Column(TypeName = "int(11)")] + public int ResponseUser { get; set; } + + /// + /// 申请时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + /// + /// 申请附言 + /// + [Column(TypeName = "text")] + public string? Description { get; set; } + + /// + /// 申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte State { get; set; } + + [ForeignKey("RequestUser")] + [InverseProperty("FriendrequestRequestUserNavigations")] + public virtual User RequestUserNavigation { get; set; } = null!; + + [ForeignKey("ResponseUser")] + [InverseProperty("FriendrequestResponseUserNavigations")] + public virtual User ResponseUserNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Group.cs b/backend/IM_API/Models/Group.cs new file mode 100644 index 0000000..7a27387 --- /dev/null +++ b/backend/IM_API/Models/Group.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("groups")] +[Index("GroupMaster", Name = "GroupMaster")] +[Index("Id", Name = "ID")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Group +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 群聊名称 + /// + [StringLength(20)] + public string Name { get; set; } = null!; + + /// + /// 群主 + /// + [Column(TypeName = "int(11)")] + public int GroupMaster { get; set; } + + /// + /// 群权限 + /// (0:需管理员同意,1:任意人可加群,2:不允许任何人加入) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte Auhority { get; set; } + + /// + /// 全员禁言(0允许发言,2全员禁言) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte AllMembersBanned { get; set; } + + /// + /// 群聊状态 + /// (1:正常,2:封禁) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte Status { get; set; } + + /// + /// 群公告 + /// + [Column(TypeName = "text")] + public string? Announcement { get; set; } + + /// + /// 群聊创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + [ForeignKey("GroupMaster")] + [InverseProperty("Groups")] + public virtual User GroupMasterNavigation { get; set; } = null!; + + [InverseProperty("Group")] + public virtual ICollection Groupinvites { get; set; } = new List(); + + [InverseProperty("Group")] + public virtual ICollection Grouprequests { get; set; } = new List(); +} diff --git a/backend/IM_API/Models/Groupinvite.cs b/backend/IM_API/Models/Groupinvite.cs new file mode 100644 index 0000000..2686629 --- /dev/null +++ b/backend/IM_API/Models/Groupinvite.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("groupinvite")] +[Index("GroupId", Name = "GroupId")] +[Index("InviteUser", Name = "InviteUser")] +[Index("InvitedUser", Name = "InvitedUser")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Groupinvite +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 群聊编号 + /// + [Column(TypeName = "int(11)")] + public int GroupId { get; set; } + + /// + /// 被邀请用户 + /// + [Column(TypeName = "int(11)")] + public int? InvitedUser { get; set; } + + /// + /// 邀请用户 + /// + [Column(TypeName = "int(11)")] + public int? InviteUser { get; set; } + + /// + /// 当前状态(0:待被邀请人同意 + /// 1:被邀请人已同意) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte? State { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime? Created { get; set; } + + [ForeignKey("GroupId")] + [InverseProperty("Groupinvites")] + public virtual Group Group { get; set; } = null!; + + [ForeignKey("InviteUser")] + [InverseProperty("GroupinviteInviteUserNavigations")] + public virtual User? InviteUserNavigation { get; set; } + + [ForeignKey("InvitedUser")] + [InverseProperty("GroupinviteInvitedUserNavigations")] + public virtual User? InvitedUserNavigation { get; set; } +} diff --git a/backend/IM_API/Models/Groupmember.cs b/backend/IM_API/Models/Groupmember.cs new file mode 100644 index 0000000..7135b7e --- /dev/null +++ b/backend/IM_API/Models/Groupmember.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("groupmember")] +[Index("Groupld", Name = "Groupld")] +[Index("Id", Name = "ID")] +[Index("Userld", Name = "Userld")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Groupmember +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 用户编号 + /// + [Column(TypeName = "int(11)")] + public int Userld { get; set; } + + /// + /// 群聊编号 + /// + [Column(TypeName = "int(11)")] + public int Groupld { get; set; } + + /// + /// 成员角色(0:普通成员,1:管理员,2:群主) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte Role { get; set; } + + /// + /// 加入群聊时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + [ForeignKey("Groupld")] + [InverseProperty("GroupmemberGroupldNavigations")] + public virtual User GroupldNavigation { get; set; } = null!; + + [ForeignKey("Userld")] + [InverseProperty("GroupmemberUserldNavigations")] + public virtual User UserldNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Grouprequest.cs b/backend/IM_API/Models/Grouprequest.cs new file mode 100644 index 0000000..ec05da2 --- /dev/null +++ b/backend/IM_API/Models/Grouprequest.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("grouprequest")] +[Index("GroupId", Name = "GroupId")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Grouprequest +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 群聊编号 + /// + /// + [Column(TypeName = "int(11)")] + public int GroupId { get; set; } + + /// + /// 申请人 + /// + [Column(TypeName = "int(11)")] + public int UserId { get; set; } + + /// + /// 申请状态(0:待管理员同意,1:已拒绝,2:已同意) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte State { get; set; } + + /// + /// 入群附言 + /// + [Column(TypeName = "text")] + public string Description { get; set; } = null!; + + /// + /// 创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + [ForeignKey("GroupId")] + [InverseProperty("Grouprequests")] + public virtual Group Group { get; set; } = null!; + + [ForeignKey("GroupId")] + [InverseProperty("Grouprequests")] + public virtual User GroupNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/IMDbContext.cs b/backend/IM_API/Models/IMDbContext.cs new file mode 100644 index 0000000..39bc38f --- /dev/null +++ b/backend/IM_API/Models/IMDbContext.cs @@ -0,0 +1,343 @@ +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; +using Pomelo.EntityFrameworkCore.MySql.Scaffolding.Internal; + +namespace IM_API.Models; + +public partial class IMDbContext : DbContext +{ + public IMDbContext() + { + } + + public IMDbContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet Admins { get; set; } + + public virtual DbSet Conversations { get; set; } + + public virtual DbSet Devices { get; set; } + + public virtual DbSet Files { get; set; } + + public virtual DbSet Friends { get; set; } + + public virtual DbSet Friendrequests { get; set; } + + public virtual DbSet Groups { get; set; } + + public virtual DbSet Groupinvites { get; set; } + + public virtual DbSet Groupmembers { get; set; } + + public virtual DbSet Grouprequests { get; set; } + + public virtual DbSet LoginLogs { get; set; } + + public virtual DbSet Messages { get; set; } + + public virtual DbSet Notifications { get; set; } + + public virtual DbSet Permissions { get; set; } + + public virtual DbSet Permissionaroles { get; set; } + + public virtual DbSet Roles { get; set; } + + public virtual DbSet Users { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) +#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263. + => optionsBuilder.UseMySql("server=192.168.5.100;port=3306;database=IM;user=root;password=768788Dyw", Microsoft.EntityFrameworkCore.ServerVersion.Parse("5.7.44-mysql")); + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasCharSet("latin1"); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created).HasComment("创建时间 "); + entity.Property(e => e.Password).HasComment("密码"); + entity.Property(e => e.RoleId).HasComment("角色"); + entity.Property(e => e.State).HasComment("状态(0:正常,2:封禁) "); + entity.Property(e => e.Updated).HasComment("更新时间 "); + entity.Property(e => e.Username).HasComment("用户名"); + + entity.HasOne(d => d.Role).WithMany(p => p.Admins) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("admins_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.LastMessageId).HasComment("最后一条消息ID "); + entity.Property(e => e.MsgType).HasComment("消息类型(同Messages.MsgType) "); + entity.Property(e => e.Targetid).HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + entity.Property(e => e.UnreadCount).HasComment("未读消息数 "); + entity.Property(e => e.Userid).HasComment("用户"); + + entity.HasOne(d => d.LastMessage).WithMany(p => p.Conversations) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("conversations_ibfk_2"); + + entity.HasOne(d => d.User).WithMany(p => p.Conversations) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("conversations_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Dtype).HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + entity.Property(e => e.LastLogin).HasComment("最后一次登录 "); + entity.Property(e => e.Userid).HasComment("设备所属用户 "); + + entity.HasOne(d => d.User).WithMany(p => p.Devices) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("devices_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created).HasComment("创建时间 "); + entity.Property(e => e.Messageld).HasComment("关联消息ID "); + entity.Property(e => e.Name).HasComment("文件名 "); + entity.Property(e => e.Size).HasComment("文件大小(单位:KB) "); + entity.Property(e => e.Type).HasComment("文件类型 "); + entity.Property(e => e.Url).HasComment("文件储存URL "); + + entity.HasOne(d => d.MessageldNavigation).WithMany(p => p.Files) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("files_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created).HasComment("好友关系创建时间"); + entity.Property(e => e.Friendld).HasComment("用户2ID"); + entity.Property(e => e.Status).HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + entity.Property(e => e.Userld).HasComment("用户ID"); + + entity.HasOne(d => d.FriendldNavigation).WithMany(p => p.FriendFriendldNavigations) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("用户2id"); + + entity.HasOne(d => d.UserldNavigation).WithMany(p => p.FriendUserldNavigations) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("用户id"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created).HasComment("申请时间 "); + entity.Property(e => e.Description).HasComment("申请附言 "); + entity.Property(e => e.RequestUser).HasComment("申请人 "); + entity.Property(e => e.ResponseUser).HasComment("被申请人 "); + entity.Property(e => e.State).HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + entity.HasOne(d => d.RequestUserNavigation).WithMany(p => p.FriendrequestRequestUserNavigations) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("friendrequest_ibfk_1"); + + entity.HasOne(d => d.ResponseUserNavigation).WithMany(p => p.FriendrequestResponseUserNavigations) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("friendrequest_ibfk_2"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.AllMembersBanned).HasComment("全员禁言(0允许发言,2全员禁言)"); + entity.Property(e => e.Announcement).HasComment("群公告"); + entity.Property(e => e.Auhority).HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + entity.Property(e => e.Created).HasComment("群聊创建时间"); + entity.Property(e => e.GroupMaster).HasComment("群主"); + entity.Property(e => e.Name).HasComment("群聊名称"); + entity.Property(e => e.Status).HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + entity.HasOne(d => d.GroupMasterNavigation).WithMany(p => p.Groups) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("groups_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created).HasComment("创建时间"); + entity.Property(e => e.GroupId).HasComment("群聊编号"); + entity.Property(e => e.InviteUser).HasComment("邀请用户"); + entity.Property(e => e.InvitedUser).HasComment("被邀请用户"); + entity.Property(e => e.State).HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + entity.HasOne(d => d.Group).WithMany(p => p.Groupinvites) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("groupinvite_ibfk_2"); + + entity.HasOne(d => d.InviteUserNavigation).WithMany(p => p.GroupinviteInviteUserNavigations).HasConstraintName("groupinvite_ibfk_1"); + + entity.HasOne(d => d.InvitedUserNavigation).WithMany(p => p.GroupinviteInvitedUserNavigations).HasConstraintName("groupinvite_ibfk_3"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created) + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + entity.Property(e => e.Groupld).HasComment("群聊编号"); + entity.Property(e => e.Role).HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + entity.Property(e => e.Userld).HasComment("用户编号"); + + entity.HasOne(d => d.GroupldNavigation).WithMany(p => p.GroupmemberGroupldNavigations) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("groupmember_ibfk_2"); + + entity.HasOne(d => d.UserldNavigation).WithMany(p => p.GroupmemberUserldNavigations) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("groupmember_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created).HasComment("创建时间"); + entity.Property(e => e.Description).HasComment("入群附言"); + entity.Property(e => e.GroupId).HasComment("群聊编号\r\n"); + entity.Property(e => e.State).HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + entity.Property(e => e.UserId).HasComment("申请人 "); + + entity.HasOne(d => d.Group).WithMany(p => p.Grouprequests) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("grouprequest_ibfk_1"); + + entity.HasOne(d => d.GroupNavigation).WithMany(p => p.Grouprequests) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("grouprequest_ibfk_2"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Dtype).HasComment("设备类型(通Devices/DType) "); + entity.Property(e => e.Logined).HasComment("登录时间 "); + entity.Property(e => e.State).HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + entity.Property(e => e.Userld).HasComment("登录用户 "); + + entity.HasOne(d => d.UserldNavigation).WithMany(p => p.LoginLogs) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("login_log_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.ChatType).HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + entity.Property(e => e.Content).HasComment("消息内容 "); + entity.Property(e => e.Created).HasComment("发送时间 "); + entity.Property(e => e.MsgType).HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + entity.Property(e => e.Recipient).HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + entity.Property(e => e.Sender).HasComment("发送者 "); + entity.Property(e => e.State).HasComment("消息状态(0:已发送,1:已撤回) "); + + entity.HasOne(d => d.SenderNavigation).WithMany(p => p.Messages) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("messages_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Content).HasComment("通知内容"); + entity.Property(e => e.Created).HasComment("创建时间"); + entity.Property(e => e.Ntype).HasComment("通知类型(0:文本)"); + entity.Property(e => e.Title).HasComment("通知标题"); + entity.Property(e => e.Userld).HasComment("接收人(为空为全体通知)"); + + entity.HasOne(d => d.UserldNavigation).WithMany(p => p.Notifications) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("notifications_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Code).HasComment("权限编码 "); + entity.Property(e => e.Created).HasComment("创建时间 "); + entity.Property(e => e.Name).HasComment("权限名称 "); + entity.Property(e => e.Ptype).HasComment("权限类型(0:增,1:删,2:改,3:查) "); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Id).ValueGeneratedNever(); + entity.Property(e => e.Permissionld).HasComment("权限 "); + entity.Property(e => e.Roleld).HasComment("角色 "); + + entity.HasOne(d => d.PermissionldNavigation).WithMany(p => p.Permissionaroles) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("permissionarole_ibfk_2"); + + entity.HasOne(d => d.RoleldNavigation).WithMany(p => p.Permissionaroles) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("permissionarole_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created).HasComment("创建时间 "); + entity.Property(e => e.Description).HasComment("角色描述 "); + entity.Property(e => e.Name).HasComment("角色名称 "); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity.Property(e => e.Created) + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + entity.Property(e => e.IsDeleted).HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + entity.Property(e => e.NickName).HasComment("用户昵称"); + entity.Property(e => e.OlineStatus).HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + entity.Property(e => e.Password).HasComment("密码"); + entity.Property(e => e.Status) + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + entity.Property(e => e.Updated).HasComment("修改时间"); + entity.Property(e => e.Username).HasComment("唯一用户名"); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/backend/IM_API/Models/LoginLog.cs b/backend/IM_API/Models/LoginLog.cs new file mode 100644 index 0000000..7650ca8 --- /dev/null +++ b/backend/IM_API/Models/LoginLog.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("login_log")] +[Index("Userld", Name = "Userld")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class LoginLog +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 设备类型(通Devices/DType) + /// + [Column("DType", TypeName = "tinyint(4)")] + public sbyte Dtype { get; set; } + + /// + /// 登录时间 + /// + [Column(TypeName = "datetime")] + public DateTime Logined { get; set; } + + /// + /// 登录用户 + /// + [Column(TypeName = "int(11)")] + public int Userld { get; set; } + + /// + /// 登录状态(0:登陆成功,1:未验证,2:已被拒绝) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte State { get; set; } + + [ForeignKey("Userld")] + [InverseProperty("LoginLogs")] + public virtual User UserldNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Message.cs b/backend/IM_API/Models/Message.cs new file mode 100644 index 0000000..595174f --- /dev/null +++ b/backend/IM_API/Models/Message.cs @@ -0,0 +1,72 @@ +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!; +} diff --git a/backend/IM_API/Models/Notification.cs b/backend/IM_API/Models/Notification.cs new file mode 100644 index 0000000..a277bb2 --- /dev/null +++ b/backend/IM_API/Models/Notification.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("notifications")] +[Index("Userld", Name = "Userld")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Notification +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 接收人(为空为全体通知) + /// + [Column(TypeName = "int(11)")] + public int Userld { get; set; } + + /// + /// 通知类型(0:文本) + /// + [Column("NType", TypeName = "tinyint(4)")] + public sbyte Ntype { get; set; } + + /// + /// 通知标题 + /// + [StringLength(40)] + public string Title { get; set; } = null!; + + /// + /// 通知内容 + /// + [Column(TypeName = "text")] + public string Content { get; set; } = null!; + + /// + /// 创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + [ForeignKey("Userld")] + [InverseProperty("Notifications")] + public virtual User UserldNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Permission.cs b/backend/IM_API/Models/Permission.cs new file mode 100644 index 0000000..3dc4f9c --- /dev/null +++ b/backend/IM_API/Models/Permission.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("permissions")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Permission +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 权限类型(0:增,1:删,2:改,3:查) + /// + [Column("PType", TypeName = "int(11)")] + public int Ptype { get; set; } + + /// + /// 权限名称 + /// + [StringLength(50)] + public string Name { get; set; } = null!; + + /// + /// 权限编码 + /// + [Column(TypeName = "int(11)")] + public int Code { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + [InverseProperty("PermissionldNavigation")] + public virtual ICollection Permissionaroles { get; set; } = new List(); +} diff --git a/backend/IM_API/Models/Permissionarole.cs b/backend/IM_API/Models/Permissionarole.cs new file mode 100644 index 0000000..ec70572 --- /dev/null +++ b/backend/IM_API/Models/Permissionarole.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("permissionarole")] +[Index("Permissionld", Name = "Permissionld")] +[Index("Roleld", Name = "Roleld")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Permissionarole +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 角色 + /// + [Column(TypeName = "int(11)")] + public int Roleld { get; set; } + + /// + /// 权限 + /// + [Column(TypeName = "int(11)")] + public int Permissionld { get; set; } + + [ForeignKey("Permissionld")] + [InverseProperty("Permissionaroles")] + public virtual Permission PermissionldNavigation { get; set; } = null!; + + [ForeignKey("Roleld")] + [InverseProperty("Permissionaroles")] + public virtual Role RoleldNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Role.cs b/backend/IM_API/Models/Role.cs new file mode 100644 index 0000000..3c6b9f3 --- /dev/null +++ b/backend/IM_API/Models/Role.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("roles")] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class Role +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 角色名称 + /// + [StringLength(20)] + public string Name { get; set; } = null!; + + /// + /// 角色描述 + /// + [Column(TypeName = "text")] + public string Description { get; set; } = null!; + + /// + /// 创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + [InverseProperty("Role")] + public virtual ICollection Admins { get; set; } = new List(); + + [InverseProperty("RoleldNavigation")] + public virtual ICollection Permissionaroles { get; set; } = new List(); +} diff --git a/backend/IM_API/Models/User.cs b/backend/IM_API/Models/User.cs new file mode 100644 index 0000000..55bcdb3 --- /dev/null +++ b/backend/IM_API/Models/User.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +[Table("users")] +[Index("Id", Name = "ID")] +[Index("Username", Name = "Username", IsUnique = true)] +[MySqlCharSet("utf8mb4")] +[MySqlCollation("utf8mb4_general_ci")] +public partial class User +{ + [Key] + [Column("ID", TypeName = "int(11)")] + public int Id { get; set; } + + /// + /// 唯一用户名 + /// + [StringLength(50)] + public string Username { get; set; } = null!; + + /// + /// 密码 + /// + [StringLength(50)] + public string Password { get; set; } = null!; + + /// + /// 用户昵称 + /// + [StringLength(50)] + public string NickName { get; set; } = null!; + + /// + /// 用户在线状态 + /// 0(默认):不在线 + /// 1:在线 + /// + [Column(TypeName = "tinyint(4)")] + public sbyte OlineStatus { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "datetime")] + public DateTime Created { get; set; } + + /// + /// 修改时间 + /// + [Column(TypeName = "datetime")] + public DateTime? Updated { get; set; } + + /// + /// 账户状态 + /// (0:未激活,1:正常,2:封禁) + /// + [Column(TypeName = "tinyint(4)")] + public sbyte Status { get; set; } + + /// + /// 软删除标识 + /// 0:账号正常 + /// 1:账号已删除 + /// + [Column(TypeName = "tinyint(4)")] + public sbyte IsDeleted { get; set; } + + [InverseProperty("User")] + public virtual ICollection Conversations { get; set; } = new List(); + + [InverseProperty("User")] + public virtual ICollection Devices { get; set; } = new List(); + + [InverseProperty("FriendldNavigation")] + public virtual ICollection FriendFriendldNavigations { get; set; } = new List(); + + [InverseProperty("UserldNavigation")] + public virtual ICollection FriendUserldNavigations { get; set; } = new List(); + + [InverseProperty("RequestUserNavigation")] + public virtual ICollection FriendrequestRequestUserNavigations { get; set; } = new List(); + + [InverseProperty("ResponseUserNavigation")] + public virtual ICollection FriendrequestResponseUserNavigations { get; set; } = new List(); + + [InverseProperty("InviteUserNavigation")] + public virtual ICollection GroupinviteInviteUserNavigations { get; set; } = new List(); + + [InverseProperty("InvitedUserNavigation")] + public virtual ICollection GroupinviteInvitedUserNavigations { get; set; } = new List(); + + [InverseProperty("GroupldNavigation")] + public virtual ICollection GroupmemberGroupldNavigations { get; set; } = new List(); + + [InverseProperty("UserldNavigation")] + public virtual ICollection GroupmemberUserldNavigations { get; set; } = new List(); + + [InverseProperty("GroupNavigation")] + public virtual ICollection Grouprequests { get; set; } = new List(); + + [InverseProperty("GroupMasterNavigation")] + public virtual ICollection Groups { get; set; } = new List(); + + [InverseProperty("UserldNavigation")] + public virtual ICollection LoginLogs { get; set; } = new List(); + + [InverseProperty("SenderNavigation")] + public virtual ICollection Messages { get; set; } = new List(); + + [InverseProperty("UserldNavigation")] + public virtual ICollection Notifications { get; set; } = new List(); +} diff --git a/backend/IM_API/obj/Container/ContainerDevelopmentMode.cache b/backend/IM_API/obj/Container/ContainerDevelopmentMode.cache deleted file mode 100644 index e69de29..0000000 diff --git a/backend/IM_API/obj/Container/ContainerId.cache b/backend/IM_API/obj/Container/ContainerId.cache deleted file mode 100644 index e69de29..0000000 diff --git a/backend/IM_API/obj/Container/ContainerName.cache b/backend/IM_API/obj/Container/ContainerName.cache deleted file mode 100644 index e69de29..0000000 diff --git a/backend/IM_API/obj/Container/ContainerRunContext.cache b/backend/IM_API/obj/Container/ContainerRunContext.cache deleted file mode 100644 index e69de29..0000000 diff --git a/backend/IM_API/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/backend/IM_API/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs deleted file mode 100644 index 2217181..0000000 --- a/backend/IM_API/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/backend/IM_API/obj/Debug/net8.0/IM_API.AssemblyInfo.cs b/backend/IM_API/obj/Debug/net8.0/IM_API.AssemblyInfo.cs deleted file mode 100644 index 1f84fa2..0000000 --- a/backend/IM_API/obj/Debug/net8.0/IM_API.AssemblyInfo.cs +++ /dev/null @@ -1,24 +0,0 @@ -//------------------------------------------------------------------------------ -// -// 此代码由工具生成。 -// 运行时版本:4.0.30319.42000 -// -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute("3f396849-59bd-435f-a0cb-351ec0559e70")] -[assembly: System.Reflection.AssemblyCompanyAttribute("IM_API")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5ac2a859f072f36c9a26b6a0ae100926ce361737")] -[assembly: System.Reflection.AssemblyProductAttribute("IM_API")] -[assembly: System.Reflection.AssemblyTitleAttribute("IM_API")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// 由 MSBuild WriteCodeFragment 类生成。 - diff --git a/backend/IM_API/obj/Debug/net8.0/IM_API.AssemblyInfoInputs.cache b/backend/IM_API/obj/Debug/net8.0/IM_API.AssemblyInfoInputs.cache deleted file mode 100644 index f3a9377..0000000 --- a/backend/IM_API/obj/Debug/net8.0/IM_API.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -ecdfe90ee262639f8d7c4eb34d36c17cf3984ff8a0ebd0c562bbe56091dd7da2 diff --git a/backend/IM_API/obj/Debug/net8.0/IM_API.GeneratedMSBuildEditorConfig.editorconfig b/backend/IM_API/obj/Debug/net8.0/IM_API.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 9bcdab2..0000000 --- a/backend/IM_API/obj/Debug/net8.0/IM_API.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,21 +0,0 @@ -is_global = true -build_property.TargetFramework = net8.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = true -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = IM_API -build_property.RootNamespace = IM_API -build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\IM_API\ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = -build_property.RazorLangVersion = 8.0 -build_property.SupportLocalizedComponentNames = -build_property.GenerateRazorMetadataSourceChecksumAttributes = -build_property.MSBuildProjectDirectory = C:\Users\nanxun\Documents\IM\backend\IM_API -build_property._RazorSourceGeneratorDebug = -build_property.EffectiveAnalysisLevelStyle = 8.0 -build_property.EnableCodeStyleSeverity = diff --git a/backend/IM_API/obj/Debug/net8.0/IM_API.GlobalUsings.g.cs b/backend/IM_API/obj/Debug/net8.0/IM_API.GlobalUsings.g.cs deleted file mode 100644 index 025530a..0000000 --- a/backend/IM_API/obj/Debug/net8.0/IM_API.GlobalUsings.g.cs +++ /dev/null @@ -1,17 +0,0 @@ -// -global using global::Microsoft.AspNetCore.Builder; -global using global::Microsoft.AspNetCore.Hosting; -global using global::Microsoft.AspNetCore.Http; -global using global::Microsoft.AspNetCore.Routing; -global using global::Microsoft.Extensions.Configuration; -global using global::Microsoft.Extensions.DependencyInjection; -global using global::Microsoft.Extensions.Hosting; -global using global::Microsoft.Extensions.Logging; -global using global::System; -global using global::System.Collections.Generic; -global using global::System.IO; -global using global::System.Linq; -global using global::System.Net.Http; -global using global::System.Net.Http.Json; -global using global::System.Threading; -global using global::System.Threading.Tasks; diff --git a/backend/IM_API/obj/Debug/net8.0/IM_API.assets.cache b/backend/IM_API/obj/Debug/net8.0/IM_API.assets.cache deleted file mode 100644 index a3bab2f..0000000 Binary files a/backend/IM_API/obj/Debug/net8.0/IM_API.assets.cache and /dev/null differ diff --git a/backend/IM_API/obj/Debug/net8.0/IM_API.csproj.AssemblyReference.cache b/backend/IM_API/obj/Debug/net8.0/IM_API.csproj.AssemblyReference.cache deleted file mode 100644 index fc8e90a..0000000 Binary files a/backend/IM_API/obj/Debug/net8.0/IM_API.csproj.AssemblyReference.cache and /dev/null differ diff --git a/backend/IM_API/obj/Debug/net8.0/rpswa.dswa.cache.json b/backend/IM_API/obj/Debug/net8.0/rpswa.dswa.cache.json deleted file mode 100644 index 852d9fb..0000000 --- a/backend/IM_API/obj/Debug/net8.0/rpswa.dswa.cache.json +++ /dev/null @@ -1 +0,0 @@ -{"GlobalPropertiesHash":"CTgS+cWYTbcaEAEp0gp2B6cHTV0srRdQzYydcF2wY5A=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["o/KWD0aNxlAqF51Di\u002BQMhbth5dV2eE0GsWviN/A7C5M=","1Co80OYN1AHERXdYjGVBC4OME7Ab4Ta6mjxvn8WvY5M="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file diff --git a/backend/IM_API/obj/Debug/net8.0/staticwebassets.removed.txt b/backend/IM_API/obj/Debug/net8.0/staticwebassets.removed.txt deleted file mode 100644 index e69de29..0000000 diff --git a/backend/IM_API/obj/IM_API.csproj.nuget.dgspec.json b/backend/IM_API/obj/IM_API.csproj.nuget.dgspec.json deleted file mode 100644 index d59c2a0..0000000 --- a/backend/IM_API/obj/IM_API.csproj.nuget.dgspec.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "format": 1, - "restore": { - "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj": {} - }, - "projects": { - "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj", - "projectName": "IM_API", - "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj", - "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", - "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\nanxun\\AppData\\Roaming\\NuGet\\NuGet.Config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "C:\\Program Files\\dotnet\\library-packs": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.300" - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": { - "target": "Package", - "version": "[1.22.1, )" - }, - "Swashbuckle.AspNetCore": { - "target": "Package", - "version": "[6.6.2, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.AspNetCore.App": { - "privateAssets": "none" - }, - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" - } - } - } - } -} \ No newline at end of file diff --git a/backend/IM_API/obj/IM_API.csproj.nuget.g.props b/backend/IM_API/obj/IM_API.csproj.nuget.g.props deleted file mode 100644 index 4b0bab5..0000000 --- a/backend/IM_API/obj/IM_API.csproj.nuget.g.props +++ /dev/null @@ -1,25 +0,0 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - $(UserProfile)\.nuget\packages\ - C:\Users\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages - PackageReference - 6.14.1 - - - - - - - - - - - - C:\Users\nanxun\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5 - C:\Users\nanxun\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.22.1 - - \ No newline at end of file diff --git a/backend/IM_API/obj/IM_API.csproj.nuget.g.targets b/backend/IM_API/obj/IM_API.csproj.nuget.g.targets deleted file mode 100644 index 4fea887..0000000 --- a/backend/IM_API/obj/IM_API.csproj.nuget.g.targets +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/backend/IM_API/obj/project.assets.json b/backend/IM_API/obj/project.assets.json deleted file mode 100644 index 5c785c4..0000000 --- a/backend/IM_API/obj/project.assets.json +++ /dev/null @@ -1,620 +0,0 @@ -{ - "version": 3, - "targets": { - "net8.0": { - "Microsoft.Extensions.ApiDescription.Server/6.0.5": { - "type": "package", - "build": { - "build/Microsoft.Extensions.ApiDescription.Server.props": {}, - "build/Microsoft.Extensions.ApiDescription.Server.targets": {} - }, - "buildMultiTargeting": { - "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props": {}, - "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets": {} - } - }, - "Microsoft.OpenApi/1.6.14": { - "type": "package", - "compile": { - "lib/netstandard2.0/Microsoft.OpenApi.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.OpenApi.dll": { - "related": ".pdb;.xml" - } - } - }, - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { - "type": "package", - "build": { - "build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.props": {}, - "build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.targets": {} - } - }, - "Swashbuckle.AspNetCore/6.6.2": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.ApiDescription.Server": "6.0.5", - "Swashbuckle.AspNetCore.Swagger": "6.6.2", - "Swashbuckle.AspNetCore.SwaggerGen": "6.6.2", - "Swashbuckle.AspNetCore.SwaggerUI": "6.6.2" - }, - "build": { - "build/Swashbuckle.AspNetCore.props": {} - } - }, - "Swashbuckle.AspNetCore.Swagger/6.6.2": { - "type": "package", - "dependencies": { - "Microsoft.OpenApi": "1.6.14" - }, - "compile": { - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { - "related": ".pdb;.xml" - } - }, - "frameworkReferences": [ - "Microsoft.AspNetCore.App" - ] - }, - "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { - "type": "package", - "dependencies": { - "Swashbuckle.AspNetCore.Swagger": "6.6.2" - }, - "compile": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { - "related": ".pdb;.xml" - } - } - }, - "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { - "type": "package", - "compile": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { - "related": ".pdb;.xml" - } - }, - "frameworkReferences": [ - "Microsoft.AspNetCore.App" - ] - } - } - }, - "libraries": { - "Microsoft.Extensions.ApiDescription.Server/6.0.5": { - "sha512": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==", - "type": "package", - "path": "microsoft.extensions.apidescription.server/6.0.5", - "hasTools": true, - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "build/Microsoft.Extensions.ApiDescription.Server.props", - "build/Microsoft.Extensions.ApiDescription.Server.targets", - "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props", - "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets", - "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", - "microsoft.extensions.apidescription.server.nuspec", - "tools/Newtonsoft.Json.dll", - "tools/dotnet-getdocument.deps.json", - "tools/dotnet-getdocument.dll", - "tools/dotnet-getdocument.runtimeconfig.json", - "tools/net461-x86/GetDocument.Insider.exe", - "tools/net461-x86/GetDocument.Insider.exe.config", - "tools/net461-x86/Microsoft.Win32.Primitives.dll", - "tools/net461-x86/System.AppContext.dll", - "tools/net461-x86/System.Buffers.dll", - "tools/net461-x86/System.Collections.Concurrent.dll", - "tools/net461-x86/System.Collections.NonGeneric.dll", - "tools/net461-x86/System.Collections.Specialized.dll", - "tools/net461-x86/System.Collections.dll", - "tools/net461-x86/System.ComponentModel.EventBasedAsync.dll", - "tools/net461-x86/System.ComponentModel.Primitives.dll", - "tools/net461-x86/System.ComponentModel.TypeConverter.dll", - "tools/net461-x86/System.ComponentModel.dll", - "tools/net461-x86/System.Console.dll", - "tools/net461-x86/System.Data.Common.dll", - "tools/net461-x86/System.Diagnostics.Contracts.dll", - "tools/net461-x86/System.Diagnostics.Debug.dll", - "tools/net461-x86/System.Diagnostics.DiagnosticSource.dll", - "tools/net461-x86/System.Diagnostics.FileVersionInfo.dll", - "tools/net461-x86/System.Diagnostics.Process.dll", - "tools/net461-x86/System.Diagnostics.StackTrace.dll", - "tools/net461-x86/System.Diagnostics.TextWriterTraceListener.dll", - "tools/net461-x86/System.Diagnostics.Tools.dll", - "tools/net461-x86/System.Diagnostics.TraceSource.dll", - "tools/net461-x86/System.Diagnostics.Tracing.dll", - "tools/net461-x86/System.Drawing.Primitives.dll", - "tools/net461-x86/System.Dynamic.Runtime.dll", - "tools/net461-x86/System.Globalization.Calendars.dll", - "tools/net461-x86/System.Globalization.Extensions.dll", - "tools/net461-x86/System.Globalization.dll", - "tools/net461-x86/System.IO.Compression.ZipFile.dll", - "tools/net461-x86/System.IO.Compression.dll", - "tools/net461-x86/System.IO.FileSystem.DriveInfo.dll", - "tools/net461-x86/System.IO.FileSystem.Primitives.dll", - "tools/net461-x86/System.IO.FileSystem.Watcher.dll", - "tools/net461-x86/System.IO.FileSystem.dll", - "tools/net461-x86/System.IO.IsolatedStorage.dll", - "tools/net461-x86/System.IO.MemoryMappedFiles.dll", - "tools/net461-x86/System.IO.Pipes.dll", - "tools/net461-x86/System.IO.UnmanagedMemoryStream.dll", - "tools/net461-x86/System.IO.dll", - "tools/net461-x86/System.Linq.Expressions.dll", - "tools/net461-x86/System.Linq.Parallel.dll", - "tools/net461-x86/System.Linq.Queryable.dll", - "tools/net461-x86/System.Linq.dll", - "tools/net461-x86/System.Memory.dll", - "tools/net461-x86/System.Net.Http.dll", - "tools/net461-x86/System.Net.NameResolution.dll", - "tools/net461-x86/System.Net.NetworkInformation.dll", - "tools/net461-x86/System.Net.Ping.dll", - "tools/net461-x86/System.Net.Primitives.dll", - "tools/net461-x86/System.Net.Requests.dll", - "tools/net461-x86/System.Net.Security.dll", - "tools/net461-x86/System.Net.Sockets.dll", - "tools/net461-x86/System.Net.WebHeaderCollection.dll", - "tools/net461-x86/System.Net.WebSockets.Client.dll", - "tools/net461-x86/System.Net.WebSockets.dll", - "tools/net461-x86/System.Numerics.Vectors.dll", - "tools/net461-x86/System.ObjectModel.dll", - "tools/net461-x86/System.Reflection.Extensions.dll", - "tools/net461-x86/System.Reflection.Primitives.dll", - "tools/net461-x86/System.Reflection.dll", - "tools/net461-x86/System.Resources.Reader.dll", - "tools/net461-x86/System.Resources.ResourceManager.dll", - "tools/net461-x86/System.Resources.Writer.dll", - "tools/net461-x86/System.Runtime.CompilerServices.Unsafe.dll", - "tools/net461-x86/System.Runtime.CompilerServices.VisualC.dll", - "tools/net461-x86/System.Runtime.Extensions.dll", - "tools/net461-x86/System.Runtime.Handles.dll", - "tools/net461-x86/System.Runtime.InteropServices.RuntimeInformation.dll", - "tools/net461-x86/System.Runtime.InteropServices.dll", - "tools/net461-x86/System.Runtime.Numerics.dll", - "tools/net461-x86/System.Runtime.Serialization.Formatters.dll", - "tools/net461-x86/System.Runtime.Serialization.Json.dll", - "tools/net461-x86/System.Runtime.Serialization.Primitives.dll", - "tools/net461-x86/System.Runtime.Serialization.Xml.dll", - "tools/net461-x86/System.Runtime.dll", - "tools/net461-x86/System.Security.Claims.dll", - "tools/net461-x86/System.Security.Cryptography.Algorithms.dll", - "tools/net461-x86/System.Security.Cryptography.Csp.dll", - "tools/net461-x86/System.Security.Cryptography.Encoding.dll", - "tools/net461-x86/System.Security.Cryptography.Primitives.dll", - "tools/net461-x86/System.Security.Cryptography.X509Certificates.dll", - "tools/net461-x86/System.Security.Principal.dll", - "tools/net461-x86/System.Security.SecureString.dll", - "tools/net461-x86/System.Text.Encoding.Extensions.dll", - "tools/net461-x86/System.Text.Encoding.dll", - "tools/net461-x86/System.Text.RegularExpressions.dll", - "tools/net461-x86/System.Threading.Overlapped.dll", - "tools/net461-x86/System.Threading.Tasks.Parallel.dll", - "tools/net461-x86/System.Threading.Tasks.dll", - "tools/net461-x86/System.Threading.Thread.dll", - "tools/net461-x86/System.Threading.ThreadPool.dll", - "tools/net461-x86/System.Threading.Timer.dll", - "tools/net461-x86/System.Threading.dll", - "tools/net461-x86/System.ValueTuple.dll", - "tools/net461-x86/System.Xml.ReaderWriter.dll", - "tools/net461-x86/System.Xml.XDocument.dll", - "tools/net461-x86/System.Xml.XPath.XDocument.dll", - "tools/net461-x86/System.Xml.XPath.dll", - "tools/net461-x86/System.Xml.XmlDocument.dll", - "tools/net461-x86/System.Xml.XmlSerializer.dll", - "tools/net461-x86/netstandard.dll", - "tools/net461/GetDocument.Insider.exe", - "tools/net461/GetDocument.Insider.exe.config", - "tools/net461/Microsoft.Win32.Primitives.dll", - "tools/net461/System.AppContext.dll", - "tools/net461/System.Buffers.dll", - "tools/net461/System.Collections.Concurrent.dll", - "tools/net461/System.Collections.NonGeneric.dll", - "tools/net461/System.Collections.Specialized.dll", - "tools/net461/System.Collections.dll", - "tools/net461/System.ComponentModel.EventBasedAsync.dll", - "tools/net461/System.ComponentModel.Primitives.dll", - "tools/net461/System.ComponentModel.TypeConverter.dll", - "tools/net461/System.ComponentModel.dll", - "tools/net461/System.Console.dll", - "tools/net461/System.Data.Common.dll", - "tools/net461/System.Diagnostics.Contracts.dll", - "tools/net461/System.Diagnostics.Debug.dll", - "tools/net461/System.Diagnostics.DiagnosticSource.dll", - "tools/net461/System.Diagnostics.FileVersionInfo.dll", - "tools/net461/System.Diagnostics.Process.dll", - "tools/net461/System.Diagnostics.StackTrace.dll", - "tools/net461/System.Diagnostics.TextWriterTraceListener.dll", - "tools/net461/System.Diagnostics.Tools.dll", - "tools/net461/System.Diagnostics.TraceSource.dll", - "tools/net461/System.Diagnostics.Tracing.dll", - "tools/net461/System.Drawing.Primitives.dll", - "tools/net461/System.Dynamic.Runtime.dll", - "tools/net461/System.Globalization.Calendars.dll", - "tools/net461/System.Globalization.Extensions.dll", - "tools/net461/System.Globalization.dll", - "tools/net461/System.IO.Compression.ZipFile.dll", - "tools/net461/System.IO.Compression.dll", - "tools/net461/System.IO.FileSystem.DriveInfo.dll", - "tools/net461/System.IO.FileSystem.Primitives.dll", - "tools/net461/System.IO.FileSystem.Watcher.dll", - "tools/net461/System.IO.FileSystem.dll", - "tools/net461/System.IO.IsolatedStorage.dll", - "tools/net461/System.IO.MemoryMappedFiles.dll", - "tools/net461/System.IO.Pipes.dll", - "tools/net461/System.IO.UnmanagedMemoryStream.dll", - "tools/net461/System.IO.dll", - "tools/net461/System.Linq.Expressions.dll", - "tools/net461/System.Linq.Parallel.dll", - "tools/net461/System.Linq.Queryable.dll", - "tools/net461/System.Linq.dll", - "tools/net461/System.Memory.dll", - "tools/net461/System.Net.Http.dll", - "tools/net461/System.Net.NameResolution.dll", - "tools/net461/System.Net.NetworkInformation.dll", - "tools/net461/System.Net.Ping.dll", - "tools/net461/System.Net.Primitives.dll", - "tools/net461/System.Net.Requests.dll", - "tools/net461/System.Net.Security.dll", - "tools/net461/System.Net.Sockets.dll", - "tools/net461/System.Net.WebHeaderCollection.dll", - "tools/net461/System.Net.WebSockets.Client.dll", - "tools/net461/System.Net.WebSockets.dll", - "tools/net461/System.Numerics.Vectors.dll", - "tools/net461/System.ObjectModel.dll", - "tools/net461/System.Reflection.Extensions.dll", - "tools/net461/System.Reflection.Primitives.dll", - "tools/net461/System.Reflection.dll", - "tools/net461/System.Resources.Reader.dll", - "tools/net461/System.Resources.ResourceManager.dll", - "tools/net461/System.Resources.Writer.dll", - "tools/net461/System.Runtime.CompilerServices.Unsafe.dll", - "tools/net461/System.Runtime.CompilerServices.VisualC.dll", - "tools/net461/System.Runtime.Extensions.dll", - "tools/net461/System.Runtime.Handles.dll", - "tools/net461/System.Runtime.InteropServices.RuntimeInformation.dll", - "tools/net461/System.Runtime.InteropServices.dll", - "tools/net461/System.Runtime.Numerics.dll", - "tools/net461/System.Runtime.Serialization.Formatters.dll", - "tools/net461/System.Runtime.Serialization.Json.dll", - "tools/net461/System.Runtime.Serialization.Primitives.dll", - "tools/net461/System.Runtime.Serialization.Xml.dll", - "tools/net461/System.Runtime.dll", - "tools/net461/System.Security.Claims.dll", - "tools/net461/System.Security.Cryptography.Algorithms.dll", - "tools/net461/System.Security.Cryptography.Csp.dll", - "tools/net461/System.Security.Cryptography.Encoding.dll", - "tools/net461/System.Security.Cryptography.Primitives.dll", - "tools/net461/System.Security.Cryptography.X509Certificates.dll", - "tools/net461/System.Security.Principal.dll", - "tools/net461/System.Security.SecureString.dll", - "tools/net461/System.Text.Encoding.Extensions.dll", - "tools/net461/System.Text.Encoding.dll", - "tools/net461/System.Text.RegularExpressions.dll", - "tools/net461/System.Threading.Overlapped.dll", - "tools/net461/System.Threading.Tasks.Parallel.dll", - "tools/net461/System.Threading.Tasks.dll", - "tools/net461/System.Threading.Thread.dll", - "tools/net461/System.Threading.ThreadPool.dll", - "tools/net461/System.Threading.Timer.dll", - "tools/net461/System.Threading.dll", - "tools/net461/System.ValueTuple.dll", - "tools/net461/System.Xml.ReaderWriter.dll", - "tools/net461/System.Xml.XDocument.dll", - "tools/net461/System.Xml.XPath.XDocument.dll", - "tools/net461/System.Xml.XPath.dll", - "tools/net461/System.Xml.XmlDocument.dll", - "tools/net461/System.Xml.XmlSerializer.dll", - "tools/net461/netstandard.dll", - "tools/netcoreapp2.1/GetDocument.Insider.deps.json", - "tools/netcoreapp2.1/GetDocument.Insider.dll", - "tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json", - "tools/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll" - ] - }, - "Microsoft.OpenApi/1.6.14": { - "sha512": "tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==", - "type": "package", - "path": "microsoft.openapi/1.6.14", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/netstandard2.0/Microsoft.OpenApi.dll", - "lib/netstandard2.0/Microsoft.OpenApi.pdb", - "lib/netstandard2.0/Microsoft.OpenApi.xml", - "microsoft.openapi.1.6.14.nupkg.sha512", - "microsoft.openapi.nuspec" - ] - }, - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { - "sha512": "EfYANhAWqmWKoLwN6bxoiPZSOfJSO9lzX+UrU6GVhLhPub1Hd+5f0zL0/tggIA6mRz6Ebw2xCNcIsM4k+7NPng==", - "type": "package", - "path": "microsoft.visualstudio.azure.containers.tools.targets/1.22.1", - "hasTools": true, - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "CHANGELOG.md", - "EULA.md", - "ThirdPartyNotices.txt", - "build/Container.props", - "build/Container.targets", - "build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.props", - "build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.targets", - "build/Rules/GeneralBrowseObject.xaml", - "build/Rules/cs-CZ/GeneralBrowseObject.xaml", - "build/Rules/de-DE/GeneralBrowseObject.xaml", - "build/Rules/es-ES/GeneralBrowseObject.xaml", - "build/Rules/fr-FR/GeneralBrowseObject.xaml", - "build/Rules/it-IT/GeneralBrowseObject.xaml", - "build/Rules/ja-JP/GeneralBrowseObject.xaml", - "build/Rules/ko-KR/GeneralBrowseObject.xaml", - "build/Rules/pl-PL/GeneralBrowseObject.xaml", - "build/Rules/pt-BR/GeneralBrowseObject.xaml", - "build/Rules/ru-RU/GeneralBrowseObject.xaml", - "build/Rules/tr-TR/GeneralBrowseObject.xaml", - "build/Rules/zh-CN/GeneralBrowseObject.xaml", - "build/Rules/zh-TW/GeneralBrowseObject.xaml", - "build/ToolsTarget.props", - "build/ToolsTarget.targets", - "icon.png", - "microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512", - "microsoft.visualstudio.azure.containers.tools.targets.nuspec", - "tools/Microsoft.VisualStudio.Containers.Tools.Common.dll", - "tools/Microsoft.VisualStudio.Containers.Tools.Shared.dll", - "tools/Microsoft.VisualStudio.Containers.Tools.Tasks.dll", - "tools/Newtonsoft.Json.dll", - "tools/System.Security.Principal.Windows.dll", - "tools/cs/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/cs/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/cs/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/de/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/de/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/de/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/es/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/es/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/es/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/fr/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/fr/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/fr/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/it/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/it/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/it/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/ja/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/ja/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/ja/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/ko/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/ko/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/ko/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/pl/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/pl/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/pl/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/ru/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/ru/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/ru/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/tr/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/tr/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/tr/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll" - ] - }, - "Swashbuckle.AspNetCore/6.6.2": { - "sha512": "+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==", - "type": "package", - "path": "swashbuckle.aspnetcore/6.6.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "build/Swashbuckle.AspNetCore.props", - "swashbuckle.aspnetcore.6.6.2.nupkg.sha512", - "swashbuckle.aspnetcore.nuspec" - ] - }, - "Swashbuckle.AspNetCore.Swagger/6.6.2": { - "sha512": "ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==", - "type": "package", - "path": "swashbuckle.aspnetcore.swagger/6.6.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net5.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/net5.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/net5.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/net6.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/net6.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/net7.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/net7.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/net7.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.xml", - "package-readme.md", - "swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", - "swashbuckle.aspnetcore.swagger.nuspec" - ] - }, - "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { - "sha512": "zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==", - "type": "package", - "path": "swashbuckle.aspnetcore.swaggergen/6.6.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "package-readme.md", - "swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512", - "swashbuckle.aspnetcore.swaggergen.nuspec" - ] - }, - "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { - "sha512": "mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==", - "type": "package", - "path": "swashbuckle.aspnetcore.swaggerui/6.6.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "package-readme.md", - "swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512", - "swashbuckle.aspnetcore.swaggerui.nuspec" - ] - } - }, - "projectFileDependencyGroups": { - "net8.0": [ - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets >= 1.22.1", - "Swashbuckle.AspNetCore >= 6.6.2" - ] - }, - "packageFolders": { - "C:\\Users\\nanxun\\.nuget\\packages\\": {}, - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj", - "projectName": "IM_API", - "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj", - "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", - "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\nanxun\\AppData\\Roaming\\NuGet\\NuGet.Config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "C:\\Program Files\\dotnet\\library-packs": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.300" - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": { - "target": "Package", - "version": "[1.22.1, )" - }, - "Swashbuckle.AspNetCore": { - "target": "Package", - "version": "[6.6.2, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.AspNetCore.App": { - "privateAssets": "none" - }, - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" - } - } - } -} \ No newline at end of file diff --git a/backend/IM_API/obj/project.nuget.cache b/backend/IM_API/obj/project.nuget.cache deleted file mode 100644 index 4d472fe..0000000 --- a/backend/IM_API/obj/project.nuget.cache +++ /dev/null @@ -1,16 +0,0 @@ -{ - "version": 2, - "dgSpecHash": "sPkaomFyhxE=", - "success": true, - "projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj", - "expectedPackageFiles": [ - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.openapi\\1.6.14\\microsoft.openapi.1.6.14.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.visualstudio.azure.containers.tools.targets\\1.22.1\\microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore\\6.6.2\\swashbuckle.aspnetcore.6.6.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.6.2\\swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.6.2\\swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.6.2\\swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512" - ], - "logs": [] -} \ No newline at end of file