diff --git a/docs/superpowers/specs/2026-05-27-aspnetusers-member-management-design.md b/docs/superpowers/specs/2026-05-27-aspnetusers-member-management-design.md index d6d9564..afa0784 100644 --- a/docs/superpowers/specs/2026-05-27-aspnetusers-member-management-design.md +++ b/docs/superpowers/specs/2026-05-27-aspnetusers-member-management-design.md @@ -47,8 +47,9 @@ public abstract class SoftDeleteEntity : AuditableEntity | 欄位 | 型別 | 說明 | |------|------|------| | Id | int PK | auto-increment | -| FirstName_en | varchar(100) NOT NULL | 英文名 | +| FirstName_en | varchar(100) NOT NULL | 英文名(法定名)| | LastName_en | varchar(100) NOT NULL | 英文姓 | +| NickName | varchar(100)? | 常用名/英文小名(如 Chris)| | FirstName_zh | varchar(100)? | 中文名 | | LastName_zh | varchar(100)? | 中文姓 | | Gender | varchar(10)? | 'M' \| 'F' \| 'Other' | @@ -138,7 +139,7 @@ public interface IMemberService ``` 直接注入 `AppDbContext`。`GetPagedAsync` 支援: -- `search`:比對 `FirstName_en`, `LastName_en`, `FirstName_zh`, `LastName_zh`, `Email` +- `search`:比對 `FirstName_en`, `LastName_en`, `NickName`, `FirstName_zh`, `LastName_zh`, `Email` - `status`:篩選 `Member.Status` - `hasUser`:LEFT JOIN `AspNetUsers` ON `MemberId = Member.Id` @@ -243,7 +244,7 @@ APP/src/app/ ### 4.3 Members 頁面 **Kendo Grid 欄位:** -- 姓名(`LastName_en, FirstName_en` / `LastName_zh FirstName_zh`) +- 姓名(顯示優先順序:`NickName` → `FirstName_en`,搭配 `LastName_en`;中文名若有則顯示在括號內) - Status badge(顏色碼:Member=綠、Visitor=藍、Inactive=灰、Former=橙) - Email - PhoneCell @@ -252,7 +253,7 @@ APP/src/app/ - 操作:編輯 / 刪除 / **建立帳號**(只在無帳號時顯示) **新增/編輯 Dialog:** 全欄位,分為 3 個 tab: -- **基本資料**:姓名、性別、生日、Status、語言 +- **基本資料**:法定英文姓名(FirstName_en / LastName_en)、NickName、中文姓名、性別、生日、Status、語言 - **聯絡資訊**:Email、電話、地址 - **教會資訊**:JoinDate、BaptismDate、BaptismChurch、Notes