diff --git a/XisongSpaceBooking_BackEnd/Models/Entities/AccountEntity.cs b/XisongSpaceBooking_BackEnd/Models/Entities/AccountEntity.cs new file mode 100644 index 0000000..37eec06 --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Models/Entities/AccountEntity.cs @@ -0,0 +1,81 @@ +using XisongSpaceBooking_BackEnd.Models.Entities; + +namespace Models.Entities +{ + /// + /// 帳號實體類別,對應資料庫 accounts 表格 + /// + public class AccountEntity : BaseEntity + { + /// + /// 帳號 ID(主鍵) + /// + public int AccountId { get; set; } + + /// + /// 使用者姓名 + /// + public string Name { get; set; } = string.Empty; + + /// + /// 帳號名稱(唯一) + /// + public string Username { get; set; } = string.Empty; + + /// + /// 密碼(加密) + /// + public string Password { get; set; } = string.Empty; + + /// + /// 電子郵件(唯一) + /// + public string Email { get; set; } = string.Empty; + + /// + /// 處室 ID(外鍵) + /// + public int DepartmentId { get; set; } + + /// + /// 身份 ID(外鍵) + /// + public int RoleId { get; set; } + + /// + /// 帳號狀態 + /// + public AccountStatus Status { get; set; } + + /// + /// 關聯的處室資訊 + /// + public DepartmentEntity? Department { get; set; } + + /// + /// 關聯的身份資訊 + /// + public RoleEntity? Role { get; set; } + } + + /// + /// 帳號狀態列舉 + /// + public enum AccountStatus + { + /// + /// 已啟用 + /// + Enabled, + + /// + /// 已停用 + /// + Disabled, + + /// + /// 未驗證(預設值) + /// + Unverified + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Models/Entities/BaseEntity.cs b/XisongSpaceBooking_BackEnd/Models/Entities/BaseEntity.cs new file mode 100644 index 0000000..dfe9dff --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Models/Entities/BaseEntity.cs @@ -0,0 +1,9 @@ +namespace XisongSpaceBooking_BackEnd.Models.Entities +{ + public class BaseEntity + { + public DateTime CreatedAt { get; set; } + public DateTime? UpdatedAt { get; set; } + public int? ModifiedBy { get; set; } + } +} diff --git a/XisongSpaceBooking_BackEnd/Models/Entities/DepartmentEntity.cs b/XisongSpaceBooking_BackEnd/Models/Entities/DepartmentEntity.cs new file mode 100644 index 0000000..bda1a7c --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Models/Entities/DepartmentEntity.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; + +namespace Models.Entities +{ + /// + /// 處室實體類別,對應資料庫 departments 表格 + /// + public class DepartmentEntity + { + /// + /// 處室 ID(主鍵) + /// + public int DepartmentId { get; set; } + + /// + /// 處室名稱 + /// + public string DepartmentName { get; set; } + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Models/Entities/RoleEntity.cs b/XisongSpaceBooking_BackEnd/Models/Entities/RoleEntity.cs new file mode 100644 index 0000000..ee24e94 --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Models/Entities/RoleEntity.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; + +namespace Models.Entities +{ + /// + /// 身份實體類別,對應資料庫 roles 表格 + /// + public class RoleEntity + { + /// + /// 身份 ID(主鍵) + /// + public int RoleId { get; set; } + + /// + /// 身份名稱 + /// + public string RoleName { get; set; } + } +} \ No newline at end of file