import z from 'zod'; import { metadata } from '../interfaces/Metadata'; // This service doesn't respond to HTTP requests, so it doesn't need to be extend ServiceResponse export const discordServer = z.object({ id: z.string(), name: z.string(), registeredOn: z.date(), }); export const discord = z.object({ _id: z.string(), name: z.string(), botId: z.string(), server: discordServer, meta: metadata, }); export type Discord = z.infer; export type DiscordServer = z.infer; export interface DiscordService { startService(): void; } /** ****************************************************************************** * Create Discord ******************************************************************************* */ export const createDiscordParams = z.object({ name: z.string().optional(), botId: z.string(), server: discordServer, meta: metadata, }); export const createDiscordRequest = z.object({ params: createDiscordParams, }); export type CreateDiscordParams = z.infer; export type CreateDiscordRequest = z.infer; /** ****************************************************************************** * Get Discord By Server Id ******************************************************************************* */ export const getDiscordByServerIdParams = z.object({ serverId: z.string(), }); export const getDiscordByServerIdRequest = z.object({ params: getDiscordByServerIdParams, }); export type GetDiscordByServerIdParams = z.infer; export type GetDiscordByServerIdRequest = z.infer; /** ****************************************************************************** * Get Bot ******************************************************************************* */ export const getBotParams = z.object({ botId: z.string(), }); export const getBotRequest = z.object({ params: getBotParams, }); export type GetBotParams = z.infer; export type GetBotRequest = z.infer;