69 lines
1.8 KiB
TypeScript
69 lines
1.8 KiB
TypeScript
import type { TaskStatus } from './task-status'
|
|
import type { TaskEffort } from './task-effort'
|
|
import type { TaskPriority } from './task-priority'
|
|
import type { TaskTag } from './task-tag'
|
|
import type { TaskGroup } from './task-group'
|
|
import type { UserData } from './user-data'
|
|
import type { Project } from './project'
|
|
import type { TaskDocument } from './task-document'
|
|
|
|
export type Task = {
|
|
id: number
|
|
'@id'?: string
|
|
number: number
|
|
title: string
|
|
description: string | null
|
|
status: TaskStatus | null
|
|
effort: TaskEffort | null
|
|
priority: TaskPriority | null
|
|
assignee: UserData | null
|
|
group: TaskGroup | null
|
|
project: Project | null
|
|
tags: TaskTag[]
|
|
documents: TaskDocument[]
|
|
archived: boolean
|
|
clientTicket: {
|
|
id: number
|
|
number: number
|
|
type: string
|
|
status: string
|
|
title: string
|
|
} | null
|
|
scheduledStart: string | null
|
|
scheduledEnd: string | null
|
|
deadline: string | null
|
|
syncToCalendar: boolean
|
|
calendarSyncError: string | null
|
|
recurrence: {
|
|
id: number
|
|
'@id'?: string
|
|
type: 'daily' | 'weekly' | 'monthly' | 'yearly'
|
|
interval: number
|
|
daysOfWeek: string[] | null
|
|
dayOfMonth: number | null
|
|
weekOfMonth: number | null
|
|
endDate: string | null
|
|
maxOccurrences: number | null
|
|
occurrenceCount: number
|
|
} | null
|
|
}
|
|
|
|
export type TaskWrite = {
|
|
title: string
|
|
description: string | null
|
|
status: string | null
|
|
effort: string | null
|
|
priority: string | null
|
|
assignee: string | null
|
|
group: string | null
|
|
project: string
|
|
tags: string[]
|
|
archived?: boolean
|
|
clientTicket?: string | null
|
|
scheduledStart?: string | null
|
|
scheduledEnd?: string | null
|
|
deadline?: string | null
|
|
syncToCalendar?: boolean
|
|
recurrence?: string | null
|
|
}
|