Backend: - Add InviteCode model with single-use codes - Add invite API endpoints (create, list, revoke, validate) - Modify registration to require invite code when enabled - Add REQUIRE_INVITE_CODE config toggle (default: true) - Add Alembic migration for invite_codes table Frontend: - Add invite code field to registration page - Validate invite code on blur with visual feedback - Pass invite code to registration API Admins can generate invite codes via /api/docs (Swagger UI). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
12 lines
331 B
TypeScript
12 lines
331 B
TypeScript
import apiClient from './client'
|
|
import type { InviteCodeValidation } from '@/types'
|
|
|
|
export const inviteApi = {
|
|
async validateCode(code: string): Promise<InviteCodeValidation> {
|
|
const response = await apiClient.get<InviteCodeValidation>(`/invites/validate/${code}`)
|
|
return response.data
|
|
},
|
|
}
|
|
|
|
export default inviteApi
|