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[] }