@coursebuilder/core
Version:
Core package for Course Builder
52 lines (49 loc) • 1.2 kB
text/typescript
import { z } from 'zod'
export const userSchema = z.object({
id: z.string().max(255),
name: z.string().max(255).optional().nullable(),
role: z.enum(['user', 'admin']).default('user'),
email: z.string().max(255).email(),
emailVerified: z.coerce.date().nullish(),
image: z.string().max(255).optional().nullable(),
createdAt: z.coerce.date().nullish(),
memberships: z
.array(
z.object({
id: z.string(),
organizationId: z.string(),
}),
)
.nullish()
.default([]),
roles: z
.array(
z.object({
id: z.string(),
name: z.string(),
description: z.string().nullable(),
active: z.boolean(),
createdAt: z.coerce.date().nullish(),
updatedAt: z.coerce.date().nullish(),
deletedAt: z.coerce.date().nullish(),
}),
)
.optional()
.default([]),
organizationRoles: z
.array(
z.object({
id: z.string(),
organizationId: z.string(),
name: z.string(),
description: z.string().nullable(),
active: z.boolean(),
createdAt: z.coerce.date().nullish(),
updatedAt: z.coerce.date().nullish(),
deletedAt: z.coerce.date().nullish(),
}),
)
.optional()
.default([]),
})
export type User = z.infer<typeof userSchema>