You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

70 lines
1.4 KiB

import type { IconName } from "../external/icons";
import type Item from "./item";
import type { TaskResult } from "./task";
export default interface Project {
id: string
groupId: string | null
name: string
description: string
icon: IconName
active: boolean
createdTime: string
favorite: boolean
subtractAmount: number
tags: string[]
taskSortFields: string[]
startTime?: string
endTime?: string
statusTag?: string
}
export interface ProjectResult extends Project {
tasks: TaskResult[]
subtractions: ProjectSubtraction[]
}
export interface ProjectSubtraction {
item: Item
amount: number
}
export interface ProjectFilter {
active?: boolean
favorite?: boolean
expiring?: boolean
includeSemiActive?: boolean
}
export interface ProjectInput {
name: string
groupId?: string
description: string
icon: IconName
active: boolean
subtractAmount: number
startTime?: string | Date
endTime?: string | Date
statusTag?: string
favorite?: boolean
tags?: string[]
taskSortFields?: string[]
}
export interface ProjectUpdate {
name?: string
description?: string
groupId?: string
icon?: string
active?: boolean
startTime?: string | Date
clearStartTime?: boolean
endTime?: string | Date
clearEndTime?: boolean
statusTag?: string
clearStatusTag?: boolean
subtractAmount?: number
favorite?: boolean
setTags?: string[]
taskSortFields?: string[]
}