aboutsummaryrefslogtreecommitdiffstats
path: root/code/app/src/models/projects
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2023-02-25 13:15:44 +0100
committerivarlovlie <git@ivarlovlie.no>2023-02-25 13:15:44 +0100
commit900bb5e845c3ad44defbd427cae3d44a4a43321f (patch)
treedf3d96a93771884add571e82336c29fc3d9c7a1c /code/app/src/models/projects
downloadgreatoffice-900bb5e845c3ad44defbd427cae3d44a4a43321f.tar.xz
greatoffice-900bb5e845c3ad44defbd427cae3d44a4a43321f.zip
feat: Initial commit
Diffstat (limited to 'code/app/src/models/projects')
-rw-r--r--code/app/src/models/projects/Project.ts13
-rw-r--r--code/app/src/models/projects/ProjectLabel.ts5
-rw-r--r--code/app/src/models/projects/ProjectMember.ts10
-rw-r--r--code/app/src/models/projects/ProjectMeta.ts7
-rw-r--r--code/app/src/models/projects/ProjectRole.ts7
-rw-r--r--code/app/src/models/projects/ProjectStatus.ts5
6 files changed, 47 insertions, 0 deletions
diff --git a/code/app/src/models/projects/Project.ts b/code/app/src/models/projects/Project.ts
new file mode 100644
index 0000000..f265e67
--- /dev/null
+++ b/code/app/src/models/projects/Project.ts
@@ -0,0 +1,13 @@
+import type { Temporal } from "temporal-polyfill"
+import type { ProjectMember } from "./ProjectMember"
+import type { ProjectStatus } from "./ProjectStatus"
+
+export type Project = {
+ id: string,
+ name: string,
+ description?: string,
+ start: Temporal.PlainDate,
+ stop?: Temporal.PlainDate,
+ members: Array<ProjectMember>,
+ status: ProjectStatus
+} \ No newline at end of file
diff --git a/code/app/src/models/projects/ProjectLabel.ts b/code/app/src/models/projects/ProjectLabel.ts
new file mode 100644
index 0000000..59aa9d5
--- /dev/null
+++ b/code/app/src/models/projects/ProjectLabel.ts
@@ -0,0 +1,5 @@
+export type ProjectLabel = {
+ id: string,
+ name: string,
+ color: string
+} \ No newline at end of file
diff --git a/code/app/src/models/projects/ProjectMember.ts b/code/app/src/models/projects/ProjectMember.ts
new file mode 100644
index 0000000..de348ef
--- /dev/null
+++ b/code/app/src/models/projects/ProjectMember.ts
@@ -0,0 +1,10 @@
+import type { ProjectRole } from "./ProjectRole"
+
+export type ProjectMember = {
+ id: string,
+ name: string,
+ role: ProjectRole,
+ email: string,
+ userId?: string,
+ customerId?: string
+} \ No newline at end of file
diff --git a/code/app/src/models/projects/ProjectMeta.ts b/code/app/src/models/projects/ProjectMeta.ts
new file mode 100644
index 0000000..c583b47
--- /dev/null
+++ b/code/app/src/models/projects/ProjectMeta.ts
@@ -0,0 +1,7 @@
+import type { Temporal } from "temporal-polyfill"
+import type { User } from "../base/User"
+
+export type ProjectMeta = {
+ created: Temporal.PlainDateTime,
+ createdBy: User,
+} \ No newline at end of file
diff --git a/code/app/src/models/projects/ProjectRole.ts b/code/app/src/models/projects/ProjectRole.ts
new file mode 100644
index 0000000..0fa2347
--- /dev/null
+++ b/code/app/src/models/projects/ProjectRole.ts
@@ -0,0 +1,7 @@
+export enum ProjectRole {
+ EXTERNAL = "ext",
+ INTERNAL = "int",
+ RESOURCE = "res",
+ MANAGER = "man",
+ OWNER = "own"
+} \ No newline at end of file
diff --git a/code/app/src/models/projects/ProjectStatus.ts b/code/app/src/models/projects/ProjectStatus.ts
new file mode 100644
index 0000000..2df4b88
--- /dev/null
+++ b/code/app/src/models/projects/ProjectStatus.ts
@@ -0,0 +1,5 @@
+export enum ProjectStatus {
+ ACTIVE = "act",
+ EXPIRED = "exp",
+ IDLE = "idl"
+} \ No newline at end of file