evo360-types 1.1.15 → 1.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/evo-calendar/zod-schemas.ts +27 -0
- package/dist/apps/evo-core/zod-schemas.ts +7 -0
- package/dist/apps/evo-meeting/zod-schemas.ts +56 -0
- package/dist/apps/evo-people/zod-schemas.ts +84 -0
- package/dist/apps/evo-survey/zod-schemas.ts +16 -0
- package/dist/apps/evo-task/zod-schemas.ts +11 -0
- package/dist/apps/evo-tenant/zod-schemas.ts +5 -0
- package/dist/apps/shared/zod-schemas.ts +19 -0
- package/dist/index.d.ts +11 -8
- package/dist/index.js +8 -8
- package/dist/index.ts +19 -0
- package/dist/types/evo-calendar/fb_collections.d.ts +5 -2
- package/dist/types/evo-calendar/index.d.ts +48 -37
- package/dist/types/evo-core/index.d.ts +37 -30
- package/dist/types/evo-meeting/fb_collections.d.ts +5 -2
- package/dist/types/evo-meeting/index.d.ts +55 -38
- package/dist/types/evo-people/fb_collections.d.ts +8 -5
- package/dist/types/evo-people/index.d.ts +81 -67
- package/dist/types/evo-survey/fb_collections.d.ts +12 -7
- package/dist/types/evo-survey/index.d.ts +128 -102
- package/dist/types/evo-task/fb_collections.d.ts +5 -2
- package/dist/types/evo-task/index.d.ts +35 -22
- package/dist/types/evo-tenant/fb_collections.d.ts +2 -1
- package/dist/types/evo-tenant/index.d.ts +19 -14
- package/dist/types/shared/fb_collections.d.ts +14 -5
- package/dist/types/shared/index.d.ts +24 -15
- package/package.json +3 -3
- package/dist/types/evo-calendar/fb_collections.js +0 -7
- package/dist/types/evo-calendar/index.js +0 -31
- package/dist/types/evo-core/index.js +0 -2
- package/dist/types/evo-meeting/fb_collections.js +0 -7
- package/dist/types/evo-meeting/index.js +0 -26
- package/dist/types/evo-people/fb_collections.js +0 -10
- package/dist/types/evo-people/index.js +0 -24
- package/dist/types/evo-survey/fb_collections.js +0 -13
- package/dist/types/evo-survey/index.js +0 -65
- package/dist/types/evo-task/fb_collections.js +0 -7
- package/dist/types/evo-task/index.js +0 -32
- package/dist/types/evo-tenant/fb_collections.js +0 -5
- package/dist/types/evo-tenant/index.js +0 -29
- package/dist/types/shared/fb_collections.js +0 -13
- package/dist/types/shared/index.js +0 -17
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { zFireDocSchema, zTagSchema } from "../shared/zod-schemas";
|
|
3
|
+
|
|
4
|
+
// Enum for Event Instance Status
|
|
5
|
+
export const zEventStatusSchema = z.enum([
|
|
6
|
+
"scheduled",
|
|
7
|
+
"completed",
|
|
8
|
+
"cancelled",
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
export const zEventTypeSchema = z.enum([
|
|
12
|
+
"event",
|
|
13
|
+
"meeting",
|
|
14
|
+
"workshop",
|
|
15
|
+
"other",
|
|
16
|
+
]);
|
|
17
|
+
|
|
18
|
+
export const zEventSchema = zFireDocSchema // Extend from FireDocSchema
|
|
19
|
+
.extend({
|
|
20
|
+
title: z.string(),
|
|
21
|
+
description: z.string().optional(),
|
|
22
|
+
creatorName: z.string(),
|
|
23
|
+
creatorRef: z.any(),
|
|
24
|
+
eventType: zEventTypeSchema,
|
|
25
|
+
eventStatus: zEventStatusSchema,
|
|
26
|
+
tags: z.array(zTagSchema).optional(),
|
|
27
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import {
|
|
3
|
+
zTaskPrioritySchema,
|
|
4
|
+
zTaskStatusSchema,
|
|
5
|
+
} from "../evo-task/zod-schemas";
|
|
6
|
+
import { zFireDocSchema, zTagSchema } from "../shared/zod-schemas";
|
|
7
|
+
|
|
8
|
+
// Enum for Meeting Types
|
|
9
|
+
export const zMeetingTypeSchema = z.enum([
|
|
10
|
+
"regular",
|
|
11
|
+
"oneonone",
|
|
12
|
+
"feedback",
|
|
13
|
+
"presentation",
|
|
14
|
+
"other",
|
|
15
|
+
]);
|
|
16
|
+
|
|
17
|
+
export const zMeetingEventSchema = z.object({
|
|
18
|
+
eventRef: z.any(),
|
|
19
|
+
participantNames: z.array(z.string()).min(1).max(50),
|
|
20
|
+
participantRefs: z.array(z.any()).min(1).max(50),
|
|
21
|
+
startDate: z.date(),
|
|
22
|
+
endDate: z.date().optional(),
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export const zMeetingTaskSchema = z.object({
|
|
26
|
+
taskRef: z.any(),
|
|
27
|
+
title: z.string(),
|
|
28
|
+
status: zTaskStatusSchema,
|
|
29
|
+
priority: zTaskPrioritySchema.optional(),
|
|
30
|
+
assigneeName: z.string().optional(),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export const zMeetingTalkingPointSchema = z.object({
|
|
34
|
+
templateRef: z.any(),
|
|
35
|
+
title: z.string(),
|
|
36
|
+
description: z.string().optional(),
|
|
37
|
+
tags: z.array(zTagSchema).optional(),
|
|
38
|
+
discussed: z.boolean(),
|
|
39
|
+
notes: z.string().optional(),
|
|
40
|
+
assigneeName: z.string().optional(),
|
|
41
|
+
assigneeRef: z.any(),
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export const zMeetingSchema = zFireDocSchema // Extend from FireDocSchema
|
|
45
|
+
.extend({
|
|
46
|
+
title: z.string(),
|
|
47
|
+
description: z.string().optional(),
|
|
48
|
+
creatorName: z.string(),
|
|
49
|
+
creatorRef: z.any(),
|
|
50
|
+
event: zMeetingEventSchema,
|
|
51
|
+
type: zMeetingTypeSchema,
|
|
52
|
+
tasks: z.array(zMeetingTaskSchema).optional(),
|
|
53
|
+
talkingPoints: z.array(zMeetingTalkingPointSchema).optional(),
|
|
54
|
+
tags: z.array(zTagSchema).optional(),
|
|
55
|
+
})
|
|
56
|
+
.catchall(z.unknown());
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { zFireDocSchema, zTagSchema } from "../shared/zod-schemas";
|
|
3
|
+
|
|
4
|
+
export const zProfileSchema = zFireDocSchema
|
|
5
|
+
.extend({
|
|
6
|
+
display_name: z.string().min(1).max(255),
|
|
7
|
+
last_name: z.string().max(255).nullable().optional(),
|
|
8
|
+
first_name: z.string().max(255).nullable(),
|
|
9
|
+
gender: z.string().max(255).nullable().optional(),
|
|
10
|
+
birthdate: z.date().nullable().optional(),
|
|
11
|
+
photo_ref: z.string().max(255).nullable().optional(),
|
|
12
|
+
photo_url: z.string().url().nullable().optional(),
|
|
13
|
+
})
|
|
14
|
+
.passthrough();
|
|
15
|
+
|
|
16
|
+
export const zEmployeeStatusSchema = z.enum(["active", "inactive", "draft"]);
|
|
17
|
+
|
|
18
|
+
export const zEmployeeSchema = zProfileSchema // Extend from ProfileSchema
|
|
19
|
+
.extend({
|
|
20
|
+
employee_id: z.string().nullable().optional(),
|
|
21
|
+
type: z.string().nullable().optional(),
|
|
22
|
+
job_title: z.string().max(255).nullable().optional(),
|
|
23
|
+
status: zEmployeeStatusSchema,
|
|
24
|
+
company_name: z.string().max(255).nullable().optional(),
|
|
25
|
+
companyRef: z.any(),
|
|
26
|
+
date_joining: z.date().nullable().optional(),
|
|
27
|
+
reporting_to_name: z.string().max(255).nullable().optional(),
|
|
28
|
+
reporting_toRef: z.any(),
|
|
29
|
+
department_name: z.string().max(255).nullable().optional(),
|
|
30
|
+
departmentRef: z.any(),
|
|
31
|
+
office_name: z.string().max(255).nullable().optional(),
|
|
32
|
+
officeRef: z.any(),
|
|
33
|
+
work_email: z.string().max(255).nullable().optional(),
|
|
34
|
+
work_phone: z.string().max(255).nullable().optional(),
|
|
35
|
+
work_mobile: z.string().max(255).nullable().optional(),
|
|
36
|
+
tags: z.array(zTagSchema).optional(),
|
|
37
|
+
userRef: z.any(),
|
|
38
|
+
})
|
|
39
|
+
.passthrough();
|
|
40
|
+
|
|
41
|
+
export const zDepartmentSchema = zFireDocSchema // Extend from FireDocSchema
|
|
42
|
+
.extend({
|
|
43
|
+
code: z.string().min(1).max(10),
|
|
44
|
+
name: z.string().min(1).max(255),
|
|
45
|
+
lead_name: z.string().max(255).nullable().optional(),
|
|
46
|
+
leadRef: z.any(),
|
|
47
|
+
parent_department_name: z.string().max(255).nullable().optional(),
|
|
48
|
+
parent_departmentRef: z.any(),
|
|
49
|
+
employee_counters: z.any().optional(),
|
|
50
|
+
tags: z.array(zTagSchema).optional(),
|
|
51
|
+
})
|
|
52
|
+
.passthrough();
|
|
53
|
+
|
|
54
|
+
export const zOfficeSchema = zFireDocSchema // Extend from FireDocSchema
|
|
55
|
+
.extend({
|
|
56
|
+
code: z.string().min(1).max(255),
|
|
57
|
+
name: z.string().min(1).max(255),
|
|
58
|
+
timezone: z.string().nullable().optional(),
|
|
59
|
+
company_name: z.string().nullable().optional(),
|
|
60
|
+
companyRef: z.any(),
|
|
61
|
+
lead_name: z.string().max(255).nullable().optional(),
|
|
62
|
+
leadRef: z.any(),
|
|
63
|
+
address_line1: z.string().max(255).optional(),
|
|
64
|
+
address_line2: z.string().max(255).optional(),
|
|
65
|
+
address_city: z.string().max(255).optional(),
|
|
66
|
+
address_state: z.string().max(255).optional(),
|
|
67
|
+
address_zip: z.string().max(255).optional(),
|
|
68
|
+
address_country: z.string().max(255).optional(),
|
|
69
|
+
address_geo: z.any().optional(),
|
|
70
|
+
employee_counters: z.any().optional(),
|
|
71
|
+
tags: z.array(zTagSchema).optional(),
|
|
72
|
+
})
|
|
73
|
+
.passthrough();
|
|
74
|
+
|
|
75
|
+
export const zCompanySchema = zFireDocSchema // Extend from FireDocSchema
|
|
76
|
+
.extend({
|
|
77
|
+
code: z.string().min(1).max(10),
|
|
78
|
+
name: z.string().min(1).max(255),
|
|
79
|
+
lead_name: z.string().max(255).nullable().optional(),
|
|
80
|
+
leadRef: z.any(),
|
|
81
|
+
employee_counters: z.any().optional(), // mark as optional and use z.any() to skip validation
|
|
82
|
+
tags: z.array(zTagSchema).optional(),
|
|
83
|
+
})
|
|
84
|
+
.passthrough(); // allow unknown keys
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
export const zSurveyPermissionSchema = z.enum(["private", "company", "public"]);
|
|
4
|
+
|
|
5
|
+
export const zSurveyTypeSchema = z.enum(["360", "general"]);
|
|
6
|
+
|
|
7
|
+
export const zSurveyStatusSchema = z.enum(["draft", "ready", "archived"]);
|
|
8
|
+
|
|
9
|
+
//DeploymentTypes
|
|
10
|
+
export const zSurveyDeploymentStatusSchema = z.enum([
|
|
11
|
+
"draft",
|
|
12
|
+
"open",
|
|
13
|
+
"closed",
|
|
14
|
+
"in_progress",
|
|
15
|
+
"paused",
|
|
16
|
+
]);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
// Custom validation for FirestoreDocumentReference
|
|
4
|
+
export const zFireDocSchema = z.object({
|
|
5
|
+
id: z.string(),
|
|
6
|
+
ref: z.any(),
|
|
7
|
+
tenant: z.string(),
|
|
8
|
+
model_ver: z.number().optional(),
|
|
9
|
+
created_at: z.date().nullable().optional(),
|
|
10
|
+
updated_at: z.date().nullable().optional(),
|
|
11
|
+
deleted_at: z.date().nullable().optional(),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
// Custom validation for ITag
|
|
15
|
+
export const zTagSchema = z.object({
|
|
16
|
+
name: z.string(),
|
|
17
|
+
color: z.string().optional(),
|
|
18
|
+
hidden: z.boolean(),
|
|
19
|
+
});
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
export * from "./types/
|
|
3
|
-
export * from "./types/evo-
|
|
4
|
-
export * from "./types/evo-
|
|
5
|
-
export * from "./types/evo-
|
|
6
|
-
export * from "./types/evo-
|
|
7
|
-
export * from "./types/evo-
|
|
8
|
-
export * from "./types/evo-
|
|
1
|
+
// @evo360/types/index.ts
|
|
2
|
+
export * from "./types/shared";
|
|
3
|
+
export * from "./types/evo-core";
|
|
4
|
+
export * from "./types/evo-tenant";
|
|
5
|
+
export * from "./types/evo-people";
|
|
6
|
+
export * from "./types/evo-calendar";
|
|
7
|
+
export * from "./types/evo-task";
|
|
8
|
+
export * from "./types/evo-survey";
|
|
9
|
+
export * from "./types/evo-meeting";
|
|
10
|
+
|
|
11
|
+
// zod schemas
|
|
9
12
|
export * from "./apps/shared/zod-schemas";
|
|
10
13
|
export * from "./apps/evo-core/zod-schemas";
|
|
11
14
|
export * from "./apps/evo-tenant/zod-schemas";
|
package/dist/index.js
CHANGED
|
@@ -15,14 +15,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
// @evo360/types/index.ts
|
|
18
|
-
__exportStar(require("./types/shared
|
|
19
|
-
__exportStar(require("./types/evo-core
|
|
20
|
-
__exportStar(require("./types/evo-tenant
|
|
21
|
-
__exportStar(require("./types/evo-people
|
|
22
|
-
__exportStar(require("./types/evo-calendar
|
|
23
|
-
__exportStar(require("./types/evo-task
|
|
24
|
-
__exportStar(require("./types/evo-survey
|
|
25
|
-
__exportStar(require("./types/evo-meeting
|
|
18
|
+
__exportStar(require("./types/shared"), exports);
|
|
19
|
+
__exportStar(require("./types/evo-core"), exports);
|
|
20
|
+
__exportStar(require("./types/evo-tenant"), exports);
|
|
21
|
+
__exportStar(require("./types/evo-people"), exports);
|
|
22
|
+
__exportStar(require("./types/evo-calendar"), exports);
|
|
23
|
+
__exportStar(require("./types/evo-task"), exports);
|
|
24
|
+
__exportStar(require("./types/evo-survey"), exports);
|
|
25
|
+
__exportStar(require("./types/evo-meeting"), exports);
|
|
26
26
|
// zod schemas
|
|
27
27
|
__exportStar(require("./apps/shared/zod-schemas"), exports);
|
|
28
28
|
__exportStar(require("./apps/evo-core/zod-schemas"), exports);
|
package/dist/index.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// @evo360/types/index.ts
|
|
2
|
+
export * from "./types/shared";
|
|
3
|
+
export * from "./types/evo-core";
|
|
4
|
+
export * from "./types/evo-tenant";
|
|
5
|
+
export * from "./types/evo-people";
|
|
6
|
+
export * from "./types/evo-calendar";
|
|
7
|
+
export * from "./types/evo-task";
|
|
8
|
+
export * from "./types/evo-survey";
|
|
9
|
+
export * from "./types/evo-meeting";
|
|
10
|
+
|
|
11
|
+
// zod schemas
|
|
12
|
+
export * from "./apps/shared/zod-schemas";
|
|
13
|
+
export * from "./apps/evo-core/zod-schemas";
|
|
14
|
+
export * from "./apps/evo-tenant/zod-schemas";
|
|
15
|
+
export * from "./apps/evo-people/zod-schemas";
|
|
16
|
+
export * from "./apps/evo-calendar/zod-schemas";
|
|
17
|
+
export * from "./apps/evo-task/zod-schemas";
|
|
18
|
+
export * from "./apps/evo-survey/zod-schemas";
|
|
19
|
+
export * from "./apps/evo-meeting/zod-schemas";
|
|
@@ -1,50 +1,61 @@
|
|
|
1
1
|
export * from "./fb_collections";
|
|
2
2
|
import { FirestoreDocumentReference, IFireDoc, ITag } from "../shared";
|
|
3
3
|
import { MeetingType } from "../evo-meeting";
|
|
4
|
+
|
|
5
|
+
// ----- CalendarTypes
|
|
6
|
+
// Enum for Event Instance Status
|
|
4
7
|
export type EventStatus = "scheduled" | "completed" | "cancelled";
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
export enum IEventStatus {
|
|
9
|
+
Scheduled = "scheduled", // The event is scheduled and upcoming
|
|
10
|
+
Completed = "completed", // The event has been completed
|
|
11
|
+
Cancelled = "cancelled", // The event has been cancelled
|
|
9
12
|
}
|
|
13
|
+
|
|
14
|
+
// Enum for Event Types
|
|
10
15
|
export type EventType = "event" | "meeting" | "workshop" | "other";
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
export enum IEventType {
|
|
17
|
+
Event = "event", // A general event type
|
|
18
|
+
Meeting = "meeting", // A meeting event
|
|
19
|
+
Workshop = "workshop", // A workshop event
|
|
20
|
+
Other = "other", // Any other type of event
|
|
16
21
|
}
|
|
22
|
+
|
|
23
|
+
// Interface for Meeting within a Event (meetingTasks)
|
|
17
24
|
export interface IEventMeeting {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
meetingRef?: FirestoreDocumentReference; // Reference to the original task
|
|
26
|
+
type: MeetingType; // Type of meeting
|
|
27
|
+
readonly task_count?: number;
|
|
28
|
+
readonly talkingPoints_count?: number;
|
|
29
|
+
tags?: ITag[];
|
|
23
30
|
}
|
|
31
|
+
|
|
32
|
+
// Interface for Recurring Events (recurringEvents)
|
|
24
33
|
export interface IRecurringEvent extends IFireDoc {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
title: string; // Title of the meeting
|
|
35
|
+
description?: string; // Optional description of the meeting
|
|
36
|
+
creatorName: string; // Name of the user who created the event
|
|
37
|
+
creatorRef?: FirestoreDocumentReference; // reference to the user who created the event
|
|
38
|
+
participants: string[]; // List of participant IDs
|
|
39
|
+
startDate: Date; // Start date and time of the first meeting
|
|
40
|
+
endDate?: Date; // Optional end date and time of the recurring meeting
|
|
41
|
+
type: EventType; // Type of event
|
|
42
|
+
rrule: string; // Recurrence rule in RRULE format
|
|
43
|
+
exceptions: string[]; // List of instance IDs that represent exceptions
|
|
35
44
|
}
|
|
45
|
+
|
|
46
|
+
// Interface for Event Instances (eventInstances)
|
|
36
47
|
export interface IEvent extends IFireDoc {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
recurringRef?: FirestoreDocumentReference; // Reference to the recurring event rule (optional)
|
|
49
|
+
title: string; // Title of the event
|
|
50
|
+
description?: string; // Optional description of the event
|
|
51
|
+
creatorName: string; // Name of the user who created the event
|
|
52
|
+
creatorRef?: FirestoreDocumentReference; // reference to the user who created the event
|
|
53
|
+
participantNames?: string[]; // List of participant names
|
|
54
|
+
participantRefs?: FirestoreDocumentReference[]; // List of participant references
|
|
55
|
+
startDate: Date; // Start date and time of the event
|
|
56
|
+
endDate?: Date; // Optional end date and time of the event
|
|
57
|
+
type: EventType; // Type of event
|
|
58
|
+
tags?: ITag[];
|
|
59
|
+
meeting?: IEventMeeting;
|
|
60
|
+
status: EventStatus; // Status of the event
|
|
50
61
|
}
|
|
@@ -1,41 +1,48 @@
|
|
|
1
1
|
import { FirestoreDocumentReference, IFireDoc } from "../shared";
|
|
2
|
+
|
|
3
|
+
//UserTypes
|
|
2
4
|
export interface IUserSpecialRoles {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
is_admin: boolean;
|
|
6
|
+
is_sys_admin: boolean;
|
|
5
7
|
}
|
|
8
|
+
|
|
6
9
|
export interface IUser extends IUserSpecialRoles, IFireDoc {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
display_name: string;
|
|
11
|
+
email: string;
|
|
12
|
+
email_verified?: string;
|
|
13
|
+
full_name: string;
|
|
14
|
+
last_access: Date;
|
|
15
|
+
member_since: Date;
|
|
16
|
+
mobile_number?: string;
|
|
17
|
+
mobile_number_verified?: boolean;
|
|
18
|
+
phone_number?: null | string;
|
|
19
|
+
picture_url?: null | string;
|
|
20
|
+
role: number;
|
|
21
|
+
tenantRef?: FirestoreDocumentReference | null;
|
|
22
|
+
tenants?: string[];
|
|
23
|
+
sid?: null | string;
|
|
21
24
|
}
|
|
25
|
+
|
|
26
|
+
//AuthTypes
|
|
22
27
|
export interface ILogin {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
id: string;
|
|
29
|
+
user?: FirestoreDocumentReference;
|
|
30
|
+
displayname?: string | null;
|
|
31
|
+
email?: string | null;
|
|
32
|
+
emailverif?: false | boolean;
|
|
33
|
+
providerId?: string | null;
|
|
29
34
|
}
|
|
35
|
+
|
|
30
36
|
export interface IAction {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
code: number;
|
|
38
|
+
action: string;
|
|
39
|
+
created_at: Date;
|
|
40
|
+
args?: IActionArgs | string | unknown | null;
|
|
41
|
+
user?: FirestoreDocumentReference;
|
|
36
42
|
}
|
|
43
|
+
|
|
37
44
|
export interface IActionArgs {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
old_values?: Record<string, any>;
|
|
46
|
+
new_values?: Record<string, any>;
|
|
47
|
+
deleted_at?: Date;
|
|
41
48
|
}
|
|
@@ -1,52 +1,69 @@
|
|
|
1
1
|
export * from "./fb_collections";
|
|
2
2
|
import { FirestoreDocumentReference, IFireDoc, ITag } from "../shared";
|
|
3
3
|
import { TaskPriority, TaskStatus } from "../evo-task";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
|
|
5
|
+
// ----- MeetingTypes
|
|
6
|
+
export type MeetingType =
|
|
7
|
+
| "regular"
|
|
8
|
+
| "oneonone"
|
|
9
|
+
| "feedback"
|
|
10
|
+
| "presentation"
|
|
11
|
+
| "other";
|
|
12
|
+
export enum IMeetingType {
|
|
13
|
+
Regular = "regular", // A regular meeting
|
|
14
|
+
OneOnOne = "oneonone", // A one-on-one meeting
|
|
15
|
+
Feedback = "feedback", // A feedback session
|
|
16
|
+
Presentation = "presentation", // A presentation meeting
|
|
17
|
+
Other = "other", // Any other type of meeting
|
|
11
18
|
}
|
|
19
|
+
|
|
20
|
+
// Interface for Event within a Meeting (meetingEvent)
|
|
12
21
|
export interface IMeetingEvent {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
eventRef?: FirestoreDocumentReference; // Reference to the original event
|
|
23
|
+
participantNames: string[]; // List of participant names
|
|
24
|
+
participantRefs?: FirestoreDocumentReference[]; // List of participant references
|
|
25
|
+
startDate: Date; // Start date and time of the event
|
|
26
|
+
endDate?: Date; // Optional end date and time of the event
|
|
18
27
|
}
|
|
28
|
+
|
|
29
|
+
// Interface for Tasks within a Meeting (meetingTasks)
|
|
19
30
|
export interface IMeetingTask {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
taskRef?: FirestoreDocumentReference; // Reference to the original task
|
|
32
|
+
title: string; // Title (copied from the original task)
|
|
33
|
+
status: TaskStatus; // Status (can be updated independently from the original task)
|
|
34
|
+
priority?: TaskPriority; // Priority (copied from the original task)
|
|
35
|
+
assigneeName?: string; // Name of the assignee (copied from the original task)
|
|
25
36
|
}
|
|
37
|
+
|
|
38
|
+
// Interface for Talking Point Templates (talkingPointTemplates)
|
|
26
39
|
export interface ITalkingPointTemplate extends IFireDoc {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
title: string; // Title of the talking point
|
|
41
|
+
description?: string; // Optional detailed description
|
|
42
|
+
tags?: ITag[]; // Optional tags for categorization
|
|
30
43
|
}
|
|
44
|
+
|
|
45
|
+
// Interface for Talking Points within a Meeting (meetingTalkingPoints)
|
|
31
46
|
export interface IMeetingTalkingPoint {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
47
|
+
templateRef?: FirestoreDocumentReference; // Reference to the original template
|
|
48
|
+
title: string; // Title (can be copied from the template or edited)
|
|
49
|
+
description?: string; // Description (can be copied from the template or edited)
|
|
50
|
+
tags?: ITag[]; // Tags (can be copied from the template or edited)
|
|
51
|
+
discussed: boolean; // Flag to indicate if the talking point was discussed
|
|
52
|
+
notes?: string; // Optional field for notes taken during the discussion
|
|
53
|
+
assigneeName?: string; // Name of the assignee (optional)
|
|
54
|
+
assigneeRef?: FirestoreDocumentReference; // Reference to the assignee (optional)
|
|
40
55
|
}
|
|
56
|
+
|
|
57
|
+
// Interface for Meeting Instances (meetingInstances)
|
|
41
58
|
export interface IMeeting extends IFireDoc {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
59
|
+
title: string; // Title of the meeting
|
|
60
|
+
description?: string; // Optional description of the meeting
|
|
61
|
+
creatorName: string; // Name of the user who created the meeting
|
|
62
|
+
creatorRef?: FirestoreDocumentReference; // reference to the user who created the meeting
|
|
63
|
+
event: IMeetingEvent;
|
|
64
|
+
type: MeetingType; // Type of meeting
|
|
65
|
+
tasks?: IMeetingTask[];
|
|
66
|
+
talkingPoints?: IMeetingTalkingPoint[];
|
|
67
|
+
tags?: ITag[];
|
|
68
|
+
[key: string]: unknown; // index signature
|
|
52
69
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
1
|
+
//EVO People Application Doc
|
|
2
|
+
export const EVO_PEOPLE_APP = "evo-people";
|
|
3
|
+
|
|
4
|
+
//people
|
|
5
|
+
export const COMPANIES_COLLECTION = "companies";
|
|
6
|
+
export const DEPARTMENTS_COLLECTION = "departments";
|
|
7
|
+
export const OFFICES_COLLECTION = "offices";
|
|
8
|
+
export const EMPLOYEES_COLLECTION = "employees";
|