import type { Priority } from '@/constants/priorities' import type {IAbstract} from './IAbstract' import type {IUser} from './IUser' import type {ILabel} from './ILabel' import type {IAttachment} from './IAttachment' import type {ISubscription} from './ISubscription' import type {IList} from './IList' import type {IBucket} from './IBucket' import type {IRelationKind} from '@/types/IRelationKind' import type {IRepeatAfter} from '@/types/IRepeatAfter' import type {IRepeatMode} from '@/types/IRepeatMode' export interface ITask extends IAbstract { id: number title: string description: string done: boolean doneAt: Date | null priority: Priority labels: ILabel[] assignees: IUser[] dueDate: Date | null startDate: Date | null endDate: Date | null repeatAfter: number | IRepeatAfter repeatFromCurrentDate: boolean repeatMode: IRepeatMode reminderDates: Date[] parentTaskId: ITask['id'] hexColor: string percentDone: number relatedTasks: Partial>, attachments: IAttachment[] identifier: string index: number isFavorite: boolean subscription: ISubscription position: number kanbanPosition: number createdBy: IUser created: Date updated: Date listId: IList['id'] // Meta, only used when creating a new task bucketId: IBucket['id'] }