feat(member): 档案修改与空壳删除

可改 name/remark;key_count=0 时硬删,名下有 key 仅可停用。PATCH 扩档案字段并落审计。
This commit is contained in:
2026-10-12 13:57:19 +08:00
parent e293a8e5a9
commit f4f5ed0b0f
9 changed files with 243 additions and 16 deletions
+4
View File
@@ -36,6 +36,10 @@ export const ERR = {
errorBody("key_already_registered", "这枚 key 已经登记过", { key_id }),
member_name_taken: () =>
errorBody("member_name_taken", "成员名称已被占用"),
member_has_keys: (key_count: number) =>
errorBody("member_has_keys", `名下仍有 ${key_count} 枚 key,只能停用`, {
fields: { key_count: String(key_count) },
}),
upstream_unreachable: () =>
errorBody("upstream_unreachable", "上游站点暂时不可达,请稍后重试"),
not_found: () => errorBody("not_found", "请求的资源不存在"),
+3 -1
View File
@@ -115,7 +115,9 @@ export const createMemberBody = z.object({
});
export const patchMemberBody = z.object({
status: z.enum(["active", "disabled"]),
name: z.string().min(1).max(64).optional(),
remark: z.string().optional(),
status: z.enum(["active", "disabled"]).optional(),
});
export const memberWithToken = z.object({
+2
View File
@@ -138,10 +138,12 @@ export type AuditAction =
| "payment.update"
| "payment.delete"
| "member.create"
| "member.update"
| "member.enable"
| "member.disable"
| "member.token_issue"
| "member.token_reissue"
| "member.delete"
| "account.password_change"
| "account.init";