feat: enhance member management features; add quick stats and search capabilities
This commit is contained in:
@@ -166,3 +166,57 @@ export const AssignDepartmentSchema = z.object({
|
||||
memberId: z.string().uuid(),
|
||||
departmentId: z.string().uuid(),
|
||||
});
|
||||
|
||||
// --- Bulk operations & advanced search schemas ---
|
||||
|
||||
export const BulkStatusUpdateSchema = z.object({
|
||||
memberIds: z.array(z.string().uuid()).min(1),
|
||||
accountId: z.string().uuid(),
|
||||
status: MembershipStatusEnum,
|
||||
});
|
||||
|
||||
export const BulkDepartmentAssignSchema = z.object({
|
||||
memberIds: z.array(z.string().uuid()).min(1),
|
||||
accountId: z.string().uuid(),
|
||||
departmentId: z.string().uuid(),
|
||||
});
|
||||
|
||||
export const BulkArchiveSchema = z.object({
|
||||
memberIds: z.array(z.string().uuid()).min(1),
|
||||
accountId: z.string().uuid(),
|
||||
});
|
||||
|
||||
export const MemberSearchFiltersSchema = z.object({
|
||||
accountId: z.string().uuid(),
|
||||
search: z.string().optional(),
|
||||
status: z.array(MembershipStatusEnum).optional(),
|
||||
departmentIds: z.array(z.string().uuid()).optional(),
|
||||
duesCategoryId: z.string().uuid().optional(),
|
||||
flags: z
|
||||
.array(
|
||||
z.enum([
|
||||
'honorary',
|
||||
'founding',
|
||||
'youth',
|
||||
'retiree',
|
||||
'probationary',
|
||||
'transferred',
|
||||
]),
|
||||
)
|
||||
.optional(),
|
||||
entryDateFrom: z.string().optional(),
|
||||
entryDateTo: z.string().optional(),
|
||||
hasEmail: z.boolean().optional(),
|
||||
sortBy: z.string().default('last_name'),
|
||||
sortDirection: z.enum(['asc', 'desc']).default('asc'),
|
||||
page: z.number().int().min(1).default(1),
|
||||
pageSize: z.number().int().min(1).max(100).default(25),
|
||||
});
|
||||
|
||||
export type MemberSearchFilters = z.infer<typeof MemberSearchFiltersSchema>;
|
||||
|
||||
export const QuickSearchSchema = z.object({
|
||||
accountId: z.string().uuid(),
|
||||
query: z.string().min(1),
|
||||
limit: z.number().int().min(1).max(20).default(8),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user