import type Item from "./item" import type { StatValueInput, StatProgress, StatProgressWithPlanned } from "./stat" import type Status from "./status" export default interface Project extends ProjectEntry { description: string ownerName: string totalAcquired: number totalRequired: number totalPlanned: number requirements: Requirement[] } export interface ProjectEntry { id: number ownerId: string createdTime: string name: string status: number statusName: string tags: string[] } export interface ProjectInput { createdTime?: string name: string description: string status: number tags: string[] addTags?: string[] removeTags?: string[] } export interface Requirement { id: number name: string description: string status: Status statusName: string totalAcquired: number totalRequired: number totalPlanned: number isCoarse: boolean aggregateRequired: number stats: StatProgressWithPlanned[] items: Item[] tags: string[] } export interface RequirementInput { name: string description: string status: Status isCoarse: boolean aggregateRequired: number stats: StatValueInput[] tags: string[] addTags?: string[] removeTags?: string[] projectId?: number }