import { z } from "zod"; import { PostStatus, TaskListStatus, TaskListType } from "./types"; export const CreateProjectSchema = z.object({ id: z.string().optional(), tenantId: z.string(), ownerId: z.string(), title: z.string(), description: z.string().optional() }); export const ListProjectsSchema = z.object({ tenantId: z.string() }); export const CreateTaskListSchema = z.object({ id: z.string().optional(), name: z.string(), description: z.string().optional() }); export const CreateSprintSchema = z.object({ id: z.string().optional(), projectId: z.string(), title: z.string(), duration: z.number(), doneList: z.string() }); export const GetTaskListSchema = z.object({ id: z.string() }); export const GetSprintSchema = z.object({ id: z.string() }); export const UpdateTaskListSchema = z.object({ id: z.string(), name: z.string(), description: z.string().optional() }); export const UpdateSprintSchema = z.object({ id: z.string(), name: z.string(), description: z.string().optional() }); export const DeleteTaskListSchema = z.object({ id: z.string() }); export const DeleteSprintSchema = z.object({ id: z.string() }); export const GetProjectSchema = z.object({ id: z.string() }); export const ListTaskListsSchema = z.object({ projectId: z.string(), viewId: z.string().optional() }); export const CreateListSchema = z.object({ id: z.string().optional(), title: z.string(), listType: z.nativeEnum(TaskListType).default(TaskListType.OPEN), color: z.string().optional(), projectId: z.string(), isPublic: z.boolean().optional().default(false), viewId: z.string().optional() }); export const ListTasksInListSchema = z.object({ listId: z.string() }); export const CreateTaskSchema = z.object({ id: z.string().optional(), projectId: z.string(), listId: z.string(), title: z.string(), status: z.nativeEnum(TaskListStatus).default(TaskListStatus.BACKLOG) }); export const ChangeTaskStatusSchema = z.object({ taskId: z.string(), status: z.nativeEnum(TaskListStatus) }); export const MoveTaskSchema = z.object({ taskId: z.string(), sourceListId: z.string(), sourcePosition: z.number(), targetListId: z.string(), targetPosition: z.number() }); export const ListViewsSchema = z.object({ projectId: z.string() }); export const CreateViewSchema = z.object({ id: z.string().optional(), title: z.string(), projectId: z.string() }); export const ListTasksSchema = z.object({ projectId: z.string() }); // Roadmap Şemaları export const CreateRoadmapSchema = z.object({ id: z.string().optional(), title: z.string() }); export const GetRoadmapSchema = z.object({ id: z.string() }); export const ListRoadmapsSchema = z.object({}); // RoadmapPost Şemaları export const CreateRoadmapPostSchema = z.object({ id: z.string().optional(), roadmapId: z.string(), postId: z.string() }); export const GetRoadmapPostSchema = z.object({ id: z.string() }); export const ListRoadmapPostsSchema = z.object({ roadmapId: z.string().optional(), postId: z.string().optional() }); // Post Şemaları export const CreatePostSchema = z.object({ id: z.string().optional(), authorId: z.string(), by: z.string().optional(), boardId: z.string(), postCategoryId: z.string().optional(), details: z.string().optional(), eta: z.string().optional(), owner: z.string().optional(), status: z.nativeEnum(PostStatus).default(PostStatus.OPEN), title: z.string(), url: z.string().optional() }); export const GetPostSchema = z.object({ id: z.string() }); export const ListPostsSchema = z.object({ boardId: z.string().optional(), postCategoryId: z.string().optional(), status: z.nativeEnum(PostStatus).optional() }); // PostImages Şemaları export const CreatePostImagesSchema = z.object({ id: z.string().optional(), postId: z.string(), url: z.string() }); export const GetPostImagesSchema = z.object({ id: z.string() }); export const ListPostImagesSchema = z.object({ postId: z.string() }); // Board Şemaları export const CreateBoardSchema = z.object({ id: z.string().optional(), name: z.string() }); export const GetBoardSchema = z.object({ id: z.string() }); export const ListBoardsSchema = z.object({}); export const DeleteBoardSchema = z.object({ id: z.string() }); // PostCategory Şemaları export const CreatePostCategorySchema = z.object({ id: z.string().optional(), name: z.string(), boardId: z.string(), parentID: z.string().optional(), subscribeAdmins: z.boolean().default(false) }); export const GetPostCategorySchema = z.object({ id: z.string() }); export const ListPostCategoriesSchema = z.object({ boardId: z.string().optional(), parentID: z.string().optional() }); // Comment Şemaları export const CreateCommentSchema = z.object({ id: z.string().optional(), author: z.string(), boardId: z.string(), postId: z.string().optional(), internal: z.boolean().default(false), parentID: z.string().optional(), private: z.boolean().default(false), value: z.string() }); export const GetCommentSchema = z.object({ id: z.string() }); export const ListCommentsSchema = z.object({ boardId: z.string().optional(), postId: z.string().optional(), parentID: z.string().optional() }); // CommentImage Şemaları export const CreateCommentImageSchema = z.object({ id: z.string().optional(), commentId: z.string(), url: z.string() }); export const GetCommentImageSchema = z.object({ id: z.string() }); export const ListCommentImagesSchema = z.object({ commentId: z.string() }); // CommentMention Şemaları export const CreateCommentMentionSchema = z.object({ id: z.string().optional(), commentId: z.string(), userId: z.string() }); export const GetCommentMentionSchema = z.object({ id: z.string() }); export const ListCommentMentionsSchema = z.object({ commentId: z.string() }); // Vote Şemaları export const CreateVoteSchema = z.object({ id: z.string().optional(), voterId: z.string(), by: z.string().optional(), boardId: z.string(), postId: z.string() }); export const GetVoteSchema = z.object({ id: z.string() }); export const ListVotesSchema = z.object({ boardId: z.string(), postId: z.string().optional(), voterId: z.string().optional() }); // Tag Şemaları export const CreateTagSchema = z.object({ id: z.string().optional(), boardId: z.string(), name: z.string() }); export const GetTagSchema = z.object({ id: z.string() }); export const ListTagsSchema = z.object({ boardId: z.string().optional() }); // PostTag Şemaları export const CreatePostTagSchema = z.object({ id: z.string().optional(), postId: z.string(), tagId: z.string() }); export const GetPostTagSchema = z.object({ id: z.string() }); export const ListPostTagsSchema = z.object({ postId: z.string().optional(), tagId: z.string().optional() }); // Changelog Şemaları export const CreateChangelogSchema = z.object({ id: z.string().optional(), title: z.string(), details: z.string().optional(), lastSaved: z.date().optional(), publishedAt: z.date().optional(), scheduledFor: z.date().optional(), status: z.string().default("draft"), url: z.string().optional(), type: z.string().default("new") }); export const GetChangelogSchema = z.object({ id: z.string() }); export const ListChangelogsSchema = z.object({ status: z.string().optional() }); // ChangeLogPost Şemaları export const CreateChangeLogPostSchema = z.object({ id: z.string().optional(), postId: z.string(), changelogId: z.string() }); export const GetChangeLogPostSchema = z.object({ id: z.string() }); export const ListChangeLogPostsSchema = z.object({ postId: z.string().optional(), changelogId: z.string().optional() }); // StatusChange Şemaları export const CreateStatusChangeSchema = z.object({ id: z.string().optional(), changerId: z.string(), changeComment: z.string().optional(), postId: z.string(), status: z.nativeEnum(PostStatus) }); export const GetStatusChangeSchema = z.object({ id: z.string() }); export const ListStatusChangesSchema = z.object({ postId: z.string().optional(), status: z.nativeEnum(PostStatus).optional() }); export const ChangePostCategorySchema = z.object({ postId: z.string(), postCategoryId: z.string() }); export const ChangePostStatusSchema = z.object({ postId: z.string(), status: z.nativeEnum(PostStatus) }); export const DeleteCommentSchema = z.object({ id: z.string() }); export const DeletePostCategorySchema = z.object({ id: z.string() }); export const DeleteVoteSchema = z.object({ id: z.string() }); export const GetChangeLogSchema = z.object({ id: z.string() }); export const ListChangeLogsSchema = z.object({ }); export const GetTaskSchema = z.object({ id: z.string() }); export const UpdateListSchema = z.object({ listId: z.string(), title: z.string().optional(), status: z.nativeEnum(TaskListStatus).optional(), }); export const MoveViewSchema = z.object({ viewId: z.string(), targetPosition: z.number() }); export const CreateLabelSchema = z.object({ id: z.string().optional(), title: z.string(), color: z.string(), projectId: z.string() }); export const ListLabelsSchema = z.object({ projectId: z.string().optional() }); export const DeleteLabelSchema = z.object({ id: z.string() }); export const UpdateLabelSchema = z.object({ id: z.string(), title: z.string().optional(), color: z.string().optional() }); export const UpdateViewSchema = z.object({ viewId: z.string(), title: z.string().optional(), position: z.number().optional() }); export const UpdateProjectSchema = z.object({ id: z.string(), title: z.string().optional(), description: z.string().optional() }); export const ListSprintsSchema = z.object({ projectId: z.string() });