21 lines
623 B
TypeScript
21 lines
623 B
TypeScript
import { z } from 'zod';
|
|
|
|
import { timestampSchema, uuidSchema } from './_shared';
|
|
|
|
export const organizerMemberRoleSchema = z.enum(['ADMIN', 'EDITOR']);
|
|
|
|
export const organizerMemberStatusSchema = z.enum(['ACTIVE', 'PENDING']);
|
|
|
|
export const organizerMemberSchema = z.object({
|
|
id: uuidSchema,
|
|
organizer_id: uuidSchema,
|
|
user_id: uuidSchema.nullable(),
|
|
email: z.string().trim().email().max(255),
|
|
role: organizerMemberRoleSchema,
|
|
status: organizerMemberStatusSchema,
|
|
invited_at: timestampSchema,
|
|
joined_at: timestampSchema.nullable(),
|
|
});
|
|
|
|
export type OrganizerMember = z.infer<typeof organizerMemberSchema>;
|