export type TaskList = { id: string; title: string; color?: string; projectId: string; listType: TaskListType; listStatus: TaskListStatus; isPublic: boolean; createdAt: Date; updatedAt: Date; position: number; description: string; viewId?: string; tasks: Task[]; } export type Sprint = { id: string; name: string; description: string; } export type Project = { id: string; tenantId: string; picture?: string; ownerId: string; title: string; web?: string; createdDate: Date; updatedDate: Date; description?: string; starred: number; archived: boolean; defaultView: boolean; itemName: string; itemsName: string; projectType: number; commentAll: number; commitsVisibility: number; inviteAll: boolean; projectColor?: string; viewTitle?: string; position?: number; tasks: Task[]; } export interface Task { id: string; projectId: string; project: Project; milestoneId?: string; milestone?: Milestone; sprintId?: string; sprint?: Sprint; taskType: string; creator: string; secondId: number; title: string; description?: string; lastPicture?: string; lastPictureExternalUrl?: string; createdAt: Date; updatedAt: Date; deadline?: Date; archived: boolean; color?: string; estimated?: string; timeTracked?: string; isPublic: boolean; status: TaskListStatus; coverWidth?: number; coverHeight?: number; checklist?: string; comments: number; publicComments: number; likes: number; attachments: number; commits: number; supportTickets: number; value?: number; points?: number; pointsDone?: number; position?: number; } export type Milestone = { id: string; title: string; createdAt: Date; updatedAt: Date; archived: boolean; complete: boolean; deadline: Date; color?: string; position: number; Task: Task[]; } export type View = { id: string; title: string; projectId: string; createdAt: Date; updatedAt: Date; active: boolean; position: number; lists: TaskList[]; } // Prisma Modelleri için TypeScript Tipleri // Enum Tipleri export enum Roles { USER = 'USER', ADMIN = 'ADMIN' } export enum PostStatus { OPEN = 'OPEN', UNDER_REVIEW = 'UNDER_REVIEW', PLANNED = 'PLANNED', IN_PROGRESS = 'IN_PROGRESS', COMPLETE = 'COMPLETE', CLOSED = 'CLOSED' } export enum TaskListType { OPEN = 'OPEN', CLOSED = 'CLOSED', REVIEW = 'REVIEW', FROZEN = 'FROZEN' } ; export enum TaskListStatus { BACKLOG = 'BACKLOG', OPEN = 'OPEN', IN_PROGRESS = 'IN_PROGRESS', PAUSED = 'PAUSED', REJECTED = 'REJECTED', REVIEW = 'REVIEW', CLOSED = 'CLOSED', CANCELLED = 'CANCELLED' } ; // Model Tipleri export type Roadmap = { id: string; title: string; createdAt: Date; updatedAt: Date; posts: RoadmapPost[]; } export type RoadmapPost = { id: string; roadmapId: string; roadmap: Roadmap; postId: string; post: Post; createdAt: Date; updatedAt: Date; } export type Post = { id: string; authorId: string; by?: string; boardId: string; board: Board; postCategoryId?: string; postCategory?: PostCategory; comments: Comment[]; votes: Vote[]; ChangeLogPost: ChangeLogPost[]; StatusHistory: StatusChange[]; createdAt: Date; updatedAt: Date; details?: string; eta?: string; postImages: PostImages[]; owner?: string; roadmapPosts: RoadmapPost[]; score: number; status: PostStatus; statusChangedAt: Date; title: string; url?: string; PostTag: PostTag[]; } export type PostImages = { id: string; postId: string; post: Post; url: string; } export type Board = { id: string; name: string; posts: Post[]; createdAt: Date; PostCategory: PostCategory[]; Comment: Comment[]; Tag: Tag[]; Vote: Vote[]; } export type PostCategory = { id: string; name: string; board: Board; boardId: string; posts: Post[]; parentID?: string; parent?: PostCategory; children: PostCategory[]; subscribeAdmins: boolean; } export type Comment = { id: string; author: string; boardId: string; board: Board; postId?: string; post?: Post; createdAt: Date; updatedAt: Date; images: CommentImage[]; internal: boolean; likeCount: number; mentions: CommentMention[]; parentID?: string; parent?: Comment; children: Comment[]; private: boolean; value: string; } export type CommentImage = { id: string; commentId: string; comment: Comment; url: string; } export type CommentMention = { id: string; commentId: string; comment: Comment; userId: string; } export type Vote = { id: string; voterId: string; by?: string; boardId: string; board: Board; postId: string; post: Post; createdAt: Date; } export type Tag = { id: string; boardId: string; board: Board; name: string; posts: PostTag[]; } export type PostTag = { id: string; postId: string; post: Post; tagId: string; tag: Tag; } export type Changelog = { id: string; title: string; details?: string; created: Date; lastSaved?: Date; publishedAt?: Date; scheduledFor?: Date; status: string; url?: string; type: string; ChangeLogPost: ChangeLogPost[]; } export type ChangeLogPost = { id: string; postId: string; changelogId: string; post: Post; changelog: Changelog; } export type StatusChange = { id: string; changerId: string; changeComment?: string; postId: string; post: Post; status: PostStatus; changedAt: Date; } export type Label = { id: string; title: string; color: string; projectId: string; createdAt: Date; updatedAt: Date; }