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();
}