37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
|
import * as z from "zod"
|
||
|
import { CompleteWorkspace, RelatedWorkspaceModelSchema, CompleteMonitor, RelatedMonitorModelSchema, CompleteWebsiteSession, RelatedWebsiteSessionModelSchema, CompleteWebsiteEventData, RelatedWebsiteEventDataModelSchema, CompleteWebsiteSessionData, RelatedWebsiteSessionDataModelSchema } from "./index"
|
||
|
|
||
|
export const WebsiteModelSchema = z.object({
|
||
|
id: z.string(),
|
||
|
workspaceId: z.string(),
|
||
|
name: z.string(),
|
||
|
domain: z.string().nullish(),
|
||
|
shareId: z.string().nullish(),
|
||
|
resetAt: z.date().nullish(),
|
||
|
monitorId: z.string().nullish(),
|
||
|
createdAt: z.date(),
|
||
|
updatedAt: z.date(),
|
||
|
deletedAt: z.date().nullish(),
|
||
|
})
|
||
|
|
||
|
export interface CompleteWebsite extends z.infer<typeof WebsiteModelSchema> {
|
||
|
workspace: CompleteWorkspace
|
||
|
monitor?: CompleteMonitor | null
|
||
|
sessions: CompleteWebsiteSession[]
|
||
|
eventData: CompleteWebsiteEventData[]
|
||
|
sessionData: CompleteWebsiteSessionData[]
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* RelatedWebsiteModelSchema contains all relations on your model in addition to the scalars
|
||
|
*
|
||
|
* NOTE: Lazy required in case of potential circular dependencies within schema
|
||
|
*/
|
||
|
export const RelatedWebsiteModelSchema: z.ZodSchema<CompleteWebsite> = z.lazy(() => WebsiteModelSchema.extend({
|
||
|
workspace: RelatedWorkspaceModelSchema,
|
||
|
monitor: RelatedMonitorModelSchema.nullish(),
|
||
|
sessions: RelatedWebsiteSessionModelSchema.array(),
|
||
|
eventData: RelatedWebsiteEventDataModelSchema.array(),
|
||
|
sessionData: RelatedWebsiteSessionDataModelSchema.array(),
|
||
|
}))
|