Loggest thine Stuff
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.

61 lines
1.2 KiB

2 years ago
2 years ago
  1. import type Item from "./item"
  2. import type { StatValueInput, StatProgress, StatProgressWithPlanned } from "./stat"
  3. import type Status from "./status"
  4. export default interface Project extends ProjectEntry {
  5. description: string
  6. ownerName: string
  7. totalAcquired: number
  8. totalRequired: number
  9. totalPlanned: number
  10. requirements: Requirement[]
  11. }
  12. export interface ProjectEntry {
  13. id: number
  14. ownerId: string
  15. createdTime: string
  16. name: string
  17. status: number
  18. statusName: string
  19. tags: string[]
  20. }
  21. export interface ProjectInput {
  22. createdTime?: string
  23. name: string
  24. description: string
  25. status: number
  26. tags: string[]
  27. addTags?: string[]
  28. removeTags?: string[]
  29. }
  30. export interface Requirement {
  31. id: number
  32. name: string
  33. description: string
  34. status: Status
  35. statusName: string
  36. totalAcquired: number
  37. totalRequired: number
  38. totalPlanned: number
  39. isCoarse: boolean
  40. aggregateRequired: number
  41. stats: StatProgressWithPlanned[]
  42. items: Item[]
  43. tags: string[]
  44. }
  45. export interface RequirementInput {
  46. name: string
  47. description: string
  48. status: Status
  49. isCoarse: boolean
  50. aggregateRequired: number
  51. stats: StatValueInput[]
  52. tags: string[]
  53. addTags?: string[]
  54. removeTags?: string[]
  55. projectId?: number
  56. }