import { z } from "zod"; export const CreateEmploidSchema = z.object({ tenantId: z.string(), userId: z.string(), occupationId: z.string(), name: z.string(), alias: z.string(), avatar: z.string().optional(), description: z.string().optional(), version: z.string().optional() }); export const UpdateEmploidSchema = z.object({ id: z.string(), name: z.string(), alias: z.string(), avatar: z.string().optional(), description: z.string().optional(), version: z.string().optional() }); export const DeleteEmploidSchema = z.object({ id: z.string(), tenantId: z.string() }); export const ListEmploidsSchema = z.object({ tenantId: z.string() }); export const ListEmploidsPaginatedSchema = z.object({ tenantId: z.string(), page: z.number().int().optional(), limit: z.number().int().optional(), search: z.string().optional(), status: z.array(z.string()).optional(), occupation: z.array(z.string()).optional(), createdBy: z.array(z.string()).optional().transform((arr) => { return arr?.map((item) => item.toLowerCase()); }), sortBy: z.enum(['name', 'createdAt', 'updatedAt', 'relevance']).optional(), userId: z.string().optional(), }); export const ListScopesSchema = z.object({ tenantId: z.string() }); export const ListOccupationsSchema = z.object({ }); export const CreateOccupationSchema = z.object({ id: z.string(), name: z.string(), description: z.string().optional(), }); export const UpdateOccupationSchema = z.object({ id: z.string(), name: z.string(), description: z.string().optional(), }); export const DeleteOccupationSchema = z.object({ id: z.string() }); export const CreateScopeSchema = z.object({ tenantId: z.string(), emploidId: z.string(), name: z.string(), description: z.string().optional() }); export const UpdateScopeSchema = z.object({ scopeId: z.string(), name: z.string(), description: z.string().optional() }); export const DeleteScopeSchema = z.object({ scopeId: z.string() }); export const CreateJobDefinitionSchema = z.object({ tenantId: z.string(), emploidId: z.string(), scopeId: z.string(), name: z.string(), description: z.string().optional(), category: z.enum(["technical", "administrative", "social"]).optional(), priority: z.enum(["high", "medium", "low"]).optional(), status: z.enum(["active", "inactive", "draft"]).optional(), }); export const ListJobDefinitionSchema = z.object({ tenantId: z.string(), emploidId: z.string().optional(), scopeId: z.string().optional() }); export const UpdateJobDefinitionSchema = z.object({ id: z.string(), name: z.string(), description: z.string().optional(), category: z.enum(["technical", "administrative", "social"]).optional(), priority: z.enum(["high", "medium", "low"]).optional(), status: z.enum(["active", "inactive", "draft"]).optional(), }); export const DeleteJobDefinitionSchema = z.object({ id: z.string() }); export const CreateCompetencySchema = z.object({ tenantId: z.string(), emploidId: z.string(), scopeId: z.string(), jobDefinitionId: z.string(), name: z.string(), description: z.string().optional(), }); export const ListCompetenciesSchema = z.object({ tenantId: z.string(), emploidId: z.string().optional(), scopeId: z.string().optional(), jobDefinitionId: z.string().optional() }); export const UpdateCompetencySchema = z.object({ id: z.string(), name: z.string(), description: z.string().optional(), }); export const DeleteCompetencySchema = z.object({ id: z.string() }); export const CreateAgentFlowSchema = z.object({ tenantId: z.string(), name: z.string(), //flowData: z.object({}).passthrough() }); export const ListAgentFlowsSchema = z.object({ tenantId: z.string() }); export const CreateExtensionSchema = z.object({ tenantId: z.string(), id: z.string(), config: z.object({}).optional() }); export const ListExtensionsSchema = z.object({ tenantId: z.string(), }); export const CreateAssistantSchema = z.object({ tenantId: z.string(), alias: z.string(), name: z.string(), description: z.string().optional(), prompt: z.string().optional(), }); export const UpdateAssistantSchema = z.object({ id: z.string(), alias: z.string(), name: z.string(), description: z.string().optional(), prompt: z.string().optional(), }); export const DeleteAssistantSchema = z.object({ id: z.string() }); export const ListAssistantsSchema = z.object({ tenantId: z.string() }); export const CreateWorkerSchema = z.object({ tenantId: z.string(), emploidId: z.string(), name: z.string(), description: z.string().optional(), }); export const UpdateWorkerSchema = z.object({ workerId: z.string(), name: z.string().optional(), description: z.string().optional(), emploidId: z.string().optional(), }); export const DeleteWorkerSchema = z.object({ workerId: z.string(), }); export const ListWorkersSchema = z.object({ tenantId: z.string() }); export const CreateInputSchema = z.object({ tenantId: z.string(), emploidId: z.string(), competencyId: z.string(), name: z.string(), description: z.string().optional(), type: z.enum(['string', 'number', 'boolean', 'object']).default('string'), }); export const ListInputSchema = z.object({ tenantId: z.string(), emploidId: z.string().optional(), competencyId: z.string().optional(), }); export const UpdateInputSchema = z.object({ id: z.string(), name: z.string().optional(), description: z.string().optional(), type: z.enum(['string', 'number', 'boolean', 'object']).optional(), }); export const DeleteInputSchema = z.object({ id: z.string(), }); export const CreateTeamSchema = z.object({ tenantId: z.string(), alias: z.string(), name: z.string(), description: z.string().optional(), }); export const ListTeamsSchema = z.object({ tenantId: z.string() }); export const UpdateTeamSchema = z.object({ teamId: z.string(), alias: z.string().optional(), name: z.string().optional(), description: z.string().optional(), }); export const DeleteTeamSchema = z.object({ teamId: z.string(), }); export const SaveChatSchema = z.object({ id: z.string().optional(), title: z.string(), userId: z.string(), visibility: z.enum(['private', 'public']), }); export const DeleteChatByIdSchema = z.object({ id: z.string(), }); export const GetChatByIdSchema = z.object({ id: z.string(), }); export const GetChatsByUserIdSchema = z.object({ userId: z.string(), limit: z.number(), startingAfter: z.string().nullable().optional(), endingBefore: z.string().nullable().optional(), }); export const SaveMessagesSchema = z.object({ messages: z.array(z.object()) }); export const GetMessagesByChatIdSchema = z.object({ chatId: z.string(), }); export const GetMessageByIdSchema = z.object({ id: z.string(), }); export const VoteMessageSchema = z.object({ chatId: z.string(), messageId: z.string(), type: z.enum(['up', 'down']), }); export const GetVotesByChatIdSchema = z.object({ chatId: z.string(), }); export const DeleteDocumentsByIdAfterTimestampSchema = z.object({ id: z.string(), timestamp: z.date(), }); export const SaveSuggestionsSchema = z.object({ suggestions: z.array(z.object({})) }); export const GetSuggestionsByDocumentIdSchema = z.object({ id: z.string(), }); export const DeleteMessagesByChatIdAfterTimestampSchema = z.object({ chatId: z.string(), timestamp: z.date(), }); export const UpdateChatVisiblityByIdSchema = z.object({ id: z.string(), visibility: z.enum(['private', 'public']), }); export const UpdateChatLastContextByIdSchema = z.object({ id: z.string(), context: z.object({}), }); export const GetMessageCountByUserIdSchema = z.object({ userId: z.string(), differenceInHours: z.number(), }); export const CreateStreamIdSchema = z.object({ streamId: z.string(), chatId: z.string(), }); export const GetStreamIdsByChatIdSchema = z.object({ chatId: z.string(), }); export const SaveDocumentSchema = z.object({ id: z.string().optional(), title: z.string(), kind: z.enum(['text', 'code', 'image', 'sheet']), content: z.string(), userId: z.string(), }); export const GetDocumentByIdSchema = z.object({ id: z.string(), }); export const GetDocumentsByIdSchema = z.object({ id: z.string(), }); export const CreateSkillSchema = z.object({ tenantId: z.string(), name: z.string(), description: z.string().optional() }); export const ListSkillsSchema = z.object({ tenantId: z.string() }); export const UpdateSkillSchema = z.object({ id: z.string(), name: z.string().optional(), description: z.string().optional() }); export const DeleteSkillSchema = z.object({ id: z.string(), }); export const CreateInstructionSchema = z.object({ emploidId: z.string(), content: z.string(), type: z.enum(['USER', 'SYSTEM']), active: z.boolean(), }); export const ListInstructionsSchema = z.object({ type: z.string().optional(), searchText: z.string().optional(), active: z.boolean().optional(), emploidId: z.string().optional() }); export const UpdateInstructionSchema = z.object({ id: z.string(), type: z.enum(['USER', 'SYSTEM']).optional(), content: z.string().optional(), active: z.boolean().optional(), }); export const DeleteInstructionSchema = z.object({ id: z.string(), });