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.

59 lines
1.2 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. import type { IconName } from "../external/icons";
  2. import type { TaskResult } from "./task";
  3. export default interface Project {
  4. id: string
  5. groupId: string | null
  6. name: string
  7. description: string
  8. icon: IconName
  9. active: boolean
  10. createdTime: string
  11. favorite: boolean
  12. subtractAmount: number
  13. tags: string[]
  14. startTime?: string
  15. endTime?: string
  16. statusTag?: string
  17. }
  18. export interface ProjectResult extends Project {
  19. tasks: TaskResult[]
  20. }
  21. export interface ProjectFilter {
  22. active?: boolean
  23. favorite?: boolean
  24. expiring?: boolean
  25. includeSemiActive?: boolean
  26. }
  27. export interface ProjectInput {
  28. name: string
  29. groupId?: string
  30. description: string
  31. icon: IconName
  32. active: boolean
  33. subtractAmount: number
  34. startTime?: string | Date
  35. endTime?: string | Date
  36. statusTag?: string
  37. favorite?: boolean
  38. tags?: string[]
  39. }
  40. export interface ProjectUpdate {
  41. name?: string
  42. description?: string
  43. groupId?: string
  44. icon?: string
  45. active?: boolean
  46. startTime?: string | Date
  47. clearStartTime?: boolean
  48. endTime?: string | Date
  49. clearEndTime?: boolean
  50. statusTag?: string
  51. clearStatusTag?: boolean
  52. subtractAmount?: number
  53. favorite?: boolean
  54. setTags?: string[]
  55. }