feat(admin): PATCH /api/admin/members/:id/slack-status
Endpoint that flips a member's slackInvited flag manually after the admin has actually sent the Slack invitation through Slack's UI. No Slack API call is made from this app. - Body validated via Zod literal-true schema (no undo path for the pilot — admins correct mistakes in the database if needed). - Idempotent: re-marking an already-invited member is a no-op, preserving the original slackInvitedAt and not duplicating the activity log entry. - Activity log: slack_invited_manually, actor = admin from requireAdmin, subject = the target member.
This commit is contained in:
parent
55029e7eb7
commit
0981596ea2
3 changed files with 227 additions and 0 deletions
|
|
@ -314,6 +314,10 @@ export const adminRoleUpdateSchema = z.object({
|
|||
role: z.enum(['admin', 'member'])
|
||||
})
|
||||
|
||||
export const adminSlackStatusSchema = z.object({
|
||||
slackInvited: z.literal(true)
|
||||
}).strict()
|
||||
|
||||
export const bulkMemberImportSchema = z.object({
|
||||
members: z.array(z.object({
|
||||
name: z.string().min(1).max(200),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue