@openinc/parse-server-opendash 2.4.38 → 2.4.41

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.
Files changed (30) hide show
  1. package/dist/functions/openinc-openservice-tickets-by-state.js +1 -1
  2. package/dist/hooks/Maintenance_File.d.ts +1 -0
  3. package/dist/hooks/Maintenance_File.js +17 -0
  4. package/dist/hooks/Maintenance_Source_File.d.ts +1 -0
  5. package/dist/hooks/Maintenance_Source_File.js +17 -0
  6. package/dist/hooks/Maintenance_Ticket_Kanban_State.js +19 -1
  7. package/dist/hooks/Maintenance_Ticket_Kanban_State_Current.d.ts +1 -0
  8. package/dist/hooks/Maintenance_Ticket_Kanban_State_Current.js +59 -0
  9. package/dist/types/Maintenance_Schedule_Execution_Step.d.ts +4 -0
  10. package/dist/types/Maintenance_Schedule_Execution_Step.js +6 -0
  11. package/dist/types/Maintenance_Schedule_Step.d.ts +4 -0
  12. package/dist/types/Maintenance_Schedule_Step.js +6 -0
  13. package/dist/types/Maintenance_Ticket_Kanban_State_Current.d.ts +26 -0
  14. package/dist/types/Maintenance_Ticket_Kanban_State_Current.js +35 -0
  15. package/dist/types/index.d.ts +2 -0
  16. package/dist/types/index.js +3 -1
  17. package/package.json +1 -1
  18. package/schema/Alarm.json +4 -0
  19. package/schema/Company.json +49 -0
  20. package/schema/Contact.json +88 -0
  21. package/schema/Maintenance_DailySchedule.json +14 -0
  22. package/schema/Maintenance_File.json +46 -0
  23. package/schema/Maintenance_Item.json +41 -0
  24. package/schema/Maintenance_Schedule_Execution_Step.json +5 -0
  25. package/schema/Maintenance_Schedule_Step.json +5 -0
  26. package/schema/Maintenance_Source_File.json +48 -0
  27. package/schema/Maintenance_Ticket.json +9 -0
  28. package/schema/Maintenance_Ticket_Kanban_State_Current.json +50 -0
  29. package/schema/Permission.json +8 -0
  30. package/schema/SourceMeta.json +17 -0
@@ -27,7 +27,7 @@ async function init(name) {
27
27
  const totalCountPipeline = [
28
28
  { $group: { _id: "ticket" } }, // Group by ticket to only get the latest state of the ticket
29
29
  { $match: { state: state } }, // only get tickets with the state provided
30
- { $count: { $sum: 1 } }, // count the number of tickets
30
+ { $count: "count" }, // count the number of tickets
31
31
  ];
32
32
  const totalCount = await new Parse.Query(types_1.Maintenance_Ticket_Kanban_State).aggregate(totalCountPipeline,
33
33
  //@ts-expect-error
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Maintenance_File, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.Maintenance_File, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Maintenance_Source_File, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.Maintenance_Source_File, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -17,6 +17,24 @@ async function init() {
17
17
  });
18
18
  (0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Kanban_State, async (request) => {
19
19
  const { object, original, user } = request;
20
- // TODO
20
+ const currentTicketState = await new Parse.Query(types_1.Maintenance_Ticket_Kanban_State_Current)
21
+ .equalTo("ticket", object.get("ticket"))
22
+ .first({ useMasterKey: true });
23
+ // if the ticket is already in the current state table, update it
24
+ if (currentTicketState) {
25
+ currentTicketState.set("ticketState", object);
26
+ currentTicketState.set("state", object.get("state"));
27
+ await currentTicketState.save(null, { useMasterKey: true });
28
+ }
29
+ // if the ticket is not in the current state table, create a new entry
30
+ else {
31
+ const newTicketState = new types_1.Maintenance_Ticket_Kanban_State_Current({
32
+ ticket: object.get("ticket"),
33
+ ticketState: object,
34
+ state: object.get("state"),
35
+ tenant: object.get("tenant"),
36
+ });
37
+ await newTicketState.save(null, { useMasterKey: true });
38
+ }
21
39
  });
22
40
  }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ initCurrentTicketStates();
8
+ (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Kanban_State_Current, async (request) => {
9
+ const { object, original, user } = request;
10
+ await (0, __1.defaultHandler)(request);
11
+ await (0, __1.defaultAclHandler)(request);
12
+ // TODO
13
+ });
14
+ (0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Kanban_State_Current, async (request) => {
15
+ const { object, original, user } = request;
16
+ });
17
+ }
18
+ /**
19
+ * Initialize the current ticket states table. if a ticket has no entry in the current ticket states table, create one.
20
+ * If the ticket has no state, initialize it with the inbox state.
21
+ */
22
+ async function initCurrentTicketStates() {
23
+ // Getting the tickets that have no entry in the current ticket states table
24
+ const currentTicketStatesQuery = new Parse.Query(types_1.Maintenance_Ticket_Kanban_State_Current);
25
+ const ticketsQuery = new Parse.Query(types_1.Maintenance_Ticket);
26
+ ticketsQuery.doesNotMatchKeyInQuery("objectId", "ticket", currentTicketStatesQuery);
27
+ const ticketsWithoutEntry = await ticketsQuery.find({ useMasterKey: true });
28
+ // for each ticket not in the table, create an entry
29
+ for (const ticket of ticketsWithoutEntry) {
30
+ const currentTicketState = await new Parse.Query(types_1.Maintenance_Ticket_Kanban_State)
31
+ .includeAll()
32
+ .equalTo("ticket", ticket)
33
+ .descending("createdAt")
34
+ .first({ useMasterKey: true });
35
+ // if the ticket has a state, create an entry in the current ticket states table
36
+ if (currentTicketState) {
37
+ const newTicketState = new types_1.Maintenance_Ticket_Kanban_State_Current({
38
+ ticket: ticket,
39
+ ticketState: currentTicketState,
40
+ state: currentTicketState?.get("state"),
41
+ tenant: ticket.get("tenant"),
42
+ });
43
+ await newTicketState.save(null, { useMasterKey: true });
44
+ }
45
+ else {
46
+ // if the ticket has no state, initialize it with the inbox state
47
+ const inboxState = await new Parse.Query(types_1.Maintenance_Kanban_State)
48
+ .equalTo("isInbox", true)
49
+ .first({ useMasterKey: true });
50
+ // saving the ticket state will automatically create an entry in the current ticket states table due to the afterSave-Hook
51
+ await new types_1.Maintenance_Ticket_Kanban_State({
52
+ ticket: ticket,
53
+ state: inboxState,
54
+ tenant: ticket.get("tenant"),
55
+ user: ticket.user,
56
+ }).save();
57
+ }
58
+ }
59
+ }
@@ -1,3 +1,4 @@
1
+ import type { Group } from "./Group";
1
2
  import type { Maintenance_Schedule_Execution } from "./Maintenance_Schedule_Execution";
2
3
  import type { Tenant } from "./Tenant";
3
4
  import type { _Role } from "./_Role";
@@ -9,6 +10,7 @@ export interface Maintenance_Schedule_Execution_StepAttributes {
9
10
  comment?: string;
10
11
  description?: string;
11
12
  done?: boolean;
13
+ group: Group;
12
14
  location?: string;
13
15
  protectivegear?: string;
14
16
  role?: _Role;
@@ -26,6 +28,8 @@ export declare class Maintenance_Schedule_Execution_Step extends Parse.Object<Ma
26
28
  set description(value: string | undefined);
27
29
  get done(): boolean | undefined;
28
30
  set done(value: boolean | undefined);
31
+ get group(): Group;
32
+ set group(value: Group);
29
33
  get location(): string | undefined;
30
34
  set location(value: string | undefined);
31
35
  get protectivegear(): string | undefined;
@@ -23,6 +23,12 @@ class Maintenance_Schedule_Execution_Step extends Parse.Object {
23
23
  set done(value) {
24
24
  super.set("done", value);
25
25
  }
26
+ get group() {
27
+ return super.get("group");
28
+ }
29
+ set group(value) {
30
+ super.set("group", value);
31
+ }
26
32
  get location() {
27
33
  return super.get("location");
28
34
  }
@@ -1,3 +1,4 @@
1
+ import type { Group } from "./Group";
1
2
  import type { Maintenance_Schedule } from "./Maintenance_Schedule";
2
3
  import type { Tenant } from "./Tenant";
3
4
  import type { _Role } from "./_Role";
@@ -7,6 +8,7 @@ export interface Maintenance_Schedule_StepAttributes {
7
8
  createdAt: Date;
8
9
  updatedAt: Date;
9
10
  description?: string;
11
+ group: Group;
10
12
  location?: string;
11
13
  protectivegear?: string;
12
14
  role?: _Role;
@@ -20,6 +22,8 @@ export declare class Maintenance_Schedule_Step extends Parse.Object<Maintenance_
20
22
  constructor(data?: Partial<Maintenance_Schedule_StepAttributes>);
21
23
  get description(): string | undefined;
22
24
  set description(value: string | undefined);
25
+ get group(): Group;
26
+ set group(value: Group);
23
27
  get location(): string | undefined;
24
28
  set location(value: string | undefined);
25
29
  get protectivegear(): string | undefined;
@@ -11,6 +11,12 @@ class Maintenance_Schedule_Step extends Parse.Object {
11
11
  set description(value) {
12
12
  super.set("description", value);
13
13
  }
14
+ get group() {
15
+ return super.get("group");
16
+ }
17
+ set group(value) {
18
+ super.set("group", value);
19
+ }
14
20
  get location() {
15
21
  return super.get("location");
16
22
  }
@@ -0,0 +1,26 @@
1
+ import type { Maintenance_Kanban_State } from "./Maintenance_Kanban_State";
2
+ import type { Maintenance_Ticket } from "./Maintenance_Ticket";
3
+ import type { Maintenance_Ticket_Kanban_State } from "./Maintenance_Ticket_Kanban_State";
4
+ import type { Tenant } from "./Tenant";
5
+ export interface Maintenance_Ticket_Kanban_State_CurrentAttributes {
6
+ id: string;
7
+ objectId: string;
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ state?: Maintenance_Kanban_State;
11
+ tenant?: Tenant;
12
+ ticket?: Maintenance_Ticket;
13
+ ticketState?: Maintenance_Ticket_Kanban_State;
14
+ }
15
+ export declare class Maintenance_Ticket_Kanban_State_Current extends Parse.Object<Maintenance_Ticket_Kanban_State_CurrentAttributes> {
16
+ static className: string;
17
+ constructor(data?: Partial<Maintenance_Ticket_Kanban_State_CurrentAttributes>);
18
+ get state(): Maintenance_Kanban_State | undefined;
19
+ set state(value: Maintenance_Kanban_State | undefined);
20
+ get tenant(): Tenant | undefined;
21
+ set tenant(value: Tenant | undefined);
22
+ get ticket(): Maintenance_Ticket | undefined;
23
+ set ticket(value: Maintenance_Ticket | undefined);
24
+ get ticketState(): Maintenance_Ticket_Kanban_State | undefined;
25
+ set ticketState(value: Maintenance_Ticket_Kanban_State | undefined);
26
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Maintenance_Ticket_Kanban_State_Current = void 0;
4
+ class Maintenance_Ticket_Kanban_State_Current extends Parse.Object {
5
+ constructor(data) {
6
+ super("OD3_Maintenance_Ticket_Kanban_State_Current", data);
7
+ }
8
+ get state() {
9
+ return super.get("state");
10
+ }
11
+ set state(value) {
12
+ super.set("state", value);
13
+ }
14
+ get tenant() {
15
+ return super.get("tenant");
16
+ }
17
+ set tenant(value) {
18
+ super.set("tenant", value);
19
+ }
20
+ get ticket() {
21
+ return super.get("ticket");
22
+ }
23
+ set ticket(value) {
24
+ super.set("ticket", value);
25
+ }
26
+ get ticketState() {
27
+ return super.get("ticketState");
28
+ }
29
+ set ticketState(value) {
30
+ super.set("ticketState", value);
31
+ }
32
+ }
33
+ exports.Maintenance_Ticket_Kanban_State_Current = Maintenance_Ticket_Kanban_State_Current;
34
+ Maintenance_Ticket_Kanban_State_Current.className = "OD3_Maintenance_Ticket_Kanban_State_Current";
35
+ Parse.Object.registerSubclass("OD3_Maintenance_Ticket_Kanban_State_Current", Maintenance_Ticket_Kanban_State_Current);
@@ -124,6 +124,8 @@ export { Maintenance_Ticket_Issuecategory } from "./Maintenance_Ticket_Issuecate
124
124
  export type { Maintenance_Ticket_IssuecategoryAttributes } from "./Maintenance_Ticket_Issuecategory";
125
125
  export { Maintenance_Ticket_Kanban_State } from "./Maintenance_Ticket_Kanban_State";
126
126
  export type { Maintenance_Ticket_Kanban_StateAttributes } from "./Maintenance_Ticket_Kanban_State";
127
+ export { Maintenance_Ticket_Kanban_State_Current } from "./Maintenance_Ticket_Kanban_State_Current";
128
+ export type { Maintenance_Ticket_Kanban_State_CurrentAttributes } from "./Maintenance_Ticket_Kanban_State_Current";
127
129
  export { Maintenance_Ticket_Source } from "./Maintenance_Ticket_Source";
128
130
  export type { Maintenance_Ticket_SourceAttributes } from "./Maintenance_Ticket_Source";
129
131
  export { Monitoring_DataHierachies } from "./Monitoring_DataHierachies";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Maintenance_Message = exports.Maintenance_Media = exports.Maintenance_Kanban_State = exports.Maintenance_Item = exports.Maintenance_Issuecategory = exports.Maintenance_Frequency = exports.Maintenance_File = exports.Maintenance_Duedate = exports.Maintenance_Downtime = exports.Maintenance_DailySchedule = exports.Maintenance_Article = exports.MailTemplate = exports.MIAAS_MDSEndpoint = exports.Log = exports.Language = exports.Knowledge_Video = exports.Knowledge_DocumentPage = exports.Knowledge_Document = exports.Knowledge_Category = exports.Knowledge_Article = exports.Group = exports.GTFS_Wheelchair_Boarding = exports.GTFS_Wheelchair_Accessible = exports.GTFS_Trip = exports.GTFS_Stop_Times = exports.GTFS_Stop = exports.GTFS_Route_Type = exports.GTFS_Route = exports.GTFS_Location_Type = exports.GTFS_Level = exports.GTFS_Direction = exports.GTFS_Calendar = exports.GTFS_Bikes_Allowed = exports.GTFS_Agency = exports.Dashboard = exports.Core_Token = exports.Core_Email = exports.Contact = exports.Config = exports.Company = exports.BDE_Unit = exports.BDE_Result = exports.BDE_Page = exports.BDE_ListEntry = exports.BDE_List = exports.BDE_Form = exports.Attachment = exports.AlarmWebhook = exports.AlarmAction = exports.Alarm = void 0;
4
- exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.UserData = exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = exports.Notification = exports.NavigationItem = exports.NavigationGroup = exports.Monitoring_Slideshow = exports.Monitoring_ReportImage = exports.Monitoring_Jobs = exports.Monitoring_DataHierachies = exports.Maintenance_Ticket_Source = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_SourceMeta = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Schedule = exports.Maintenance_Restriction = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message_Body = void 0;
4
+ exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.UserData = exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = exports.Notification = exports.NavigationItem = exports.NavigationGroup = exports.Monitoring_Slideshow = exports.Monitoring_ReportImage = exports.Monitoring_Jobs = exports.Monitoring_DataHierachies = exports.Maintenance_Ticket_Source = exports.Maintenance_Ticket_Kanban_State_Current = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_SourceMeta = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Schedule = exports.Maintenance_Restriction = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message_Body = void 0;
5
5
  var Alarm_1 = require("./Alarm");
6
6
  Object.defineProperty(exports, "Alarm", { enumerable: true, get: function () { return Alarm_1.Alarm; } });
7
7
  var AlarmAction_1 = require("./AlarmAction");
@@ -128,6 +128,8 @@ var Maintenance_Ticket_Issuecategory_1 = require("./Maintenance_Ticket_Issuecate
128
128
  Object.defineProperty(exports, "Maintenance_Ticket_Issuecategory", { enumerable: true, get: function () { return Maintenance_Ticket_Issuecategory_1.Maintenance_Ticket_Issuecategory; } });
129
129
  var Maintenance_Ticket_Kanban_State_1 = require("./Maintenance_Ticket_Kanban_State");
130
130
  Object.defineProperty(exports, "Maintenance_Ticket_Kanban_State", { enumerable: true, get: function () { return Maintenance_Ticket_Kanban_State_1.Maintenance_Ticket_Kanban_State; } });
131
+ var Maintenance_Ticket_Kanban_State_Current_1 = require("./Maintenance_Ticket_Kanban_State_Current");
132
+ Object.defineProperty(exports, "Maintenance_Ticket_Kanban_State_Current", { enumerable: true, get: function () { return Maintenance_Ticket_Kanban_State_Current_1.Maintenance_Ticket_Kanban_State_Current; } });
131
133
  var Maintenance_Ticket_Source_1 = require("./Maintenance_Ticket_Source");
132
134
  Object.defineProperty(exports, "Maintenance_Ticket_Source", { enumerable: true, get: function () { return Maintenance_Ticket_Source_1.Maintenance_Ticket_Source; } });
133
135
  var Monitoring_DataHierachies_1 = require("./Monitoring_DataHierachies");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openinc/parse-server-opendash",
3
- "version": "2.4.38",
3
+ "version": "2.4.41",
4
4
  "description": "Parse Server Cloud Code for open.DASH",
5
5
  "keywords": [
6
6
  "parse",
package/schema/Alarm.json CHANGED
@@ -19,6 +19,10 @@
19
19
  "name": {
20
20
  "type": "String"
21
21
  },
22
+ "sent": {
23
+ "type": "Number",
24
+ "required": false
25
+ },
22
26
  "trigger": {
23
27
  "type": "Object"
24
28
  },
@@ -0,0 +1,49 @@
1
+ {
2
+ "fields": {
3
+ "contacts": {
4
+ "type": "Relation",
5
+ "targetClass": "{{PREFIX}}Contact",
6
+ "required": false
7
+ },
8
+ "name": {
9
+ "type": "String",
10
+ "required": false
11
+ },
12
+ "sources": {
13
+ "type": "Relation",
14
+ "targetClass": "{{PREFIX}}Source",
15
+ "required": false
16
+ },
17
+ "tenant": {
18
+ "type": "Pointer",
19
+ "targetClass": "{{PREFIX}}Tenant",
20
+ "required": false
21
+ }
22
+ },
23
+ "classLevelPermissions": {
24
+ "find": {
25
+ "*": true
26
+ },
27
+ "count": {
28
+ "*": true
29
+ },
30
+ "get": {
31
+ "*": true
32
+ },
33
+ "create": {
34
+ "*": true
35
+ },
36
+ "update": {
37
+ "*": true
38
+ },
39
+ "delete": {
40
+ "*": true
41
+ },
42
+ "addField": {
43
+ "*": true
44
+ },
45
+ "protectedFields": {
46
+ "*": []
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "fields": {
3
+ "city": {
4
+ "type": "String",
5
+ "required": false
6
+ },
7
+ "company": {
8
+ "type": "String",
9
+ "required": false
10
+ },
11
+ "department": {
12
+ "type": "String",
13
+ "required": false
14
+ },
15
+ "description": {
16
+ "type": "String",
17
+ "required": false
18
+ },
19
+ "email": {
20
+ "type": "String",
21
+ "required": false
22
+ },
23
+ "firstname": {
24
+ "type": "String",
25
+ "required": false
26
+ },
27
+ "lastname": {
28
+ "type": "String",
29
+ "required": false
30
+ },
31
+ "phone": {
32
+ "type": "String",
33
+ "required": false
34
+ },
35
+ "position": {
36
+ "type": "String",
37
+ "required": false
38
+ },
39
+ "postal": {
40
+ "type": "String",
41
+ "required": false
42
+ },
43
+ "street": {
44
+ "type": "String",
45
+ "required": false
46
+ },
47
+ "tenant": {
48
+ "type": "Pointer",
49
+ "targetClass": "{{PREFIX}}Tenant",
50
+ "required": false
51
+ },
52
+ "user": {
53
+ "type": "Pointer",
54
+ "targetClass": "_User",
55
+ "required": false
56
+ },
57
+ "website": {
58
+ "type": "String",
59
+ "required": false
60
+ }
61
+ },
62
+ "classLevelPermissions": {
63
+ "find": {
64
+ "*": true
65
+ },
66
+ "count": {
67
+ "*": true
68
+ },
69
+ "get": {
70
+ "*": true
71
+ },
72
+ "create": {
73
+ "*": true
74
+ },
75
+ "update": {
76
+ "*": true
77
+ },
78
+ "delete": {
79
+ "*": true
80
+ },
81
+ "addField": {
82
+ "*": true
83
+ },
84
+ "protectedFields": {
85
+ "*": []
86
+ }
87
+ }
88
+ }
@@ -1,5 +1,9 @@
1
1
  {
2
2
  "fields": {
3
+ "duedate": {
4
+ "type": "Date",
5
+ "required": false
6
+ },
3
7
  "isCompleted": {
4
8
  "type": "Boolean",
5
9
  "required": false,
@@ -10,10 +14,20 @@
10
14
  "required": true,
11
15
  "defaultValue": ""
12
16
  },
17
+ "tenant": {
18
+ "type": "Pointer",
19
+ "targetClass": "{{PREFIX}}Tenant",
20
+ "required": true
21
+ },
13
22
  "ticketIDs": {
14
23
  "type": "Array",
15
24
  "required": false
16
25
  },
26
+ "tickets": {
27
+ "type": "Relation",
28
+ "targetClass": "{{PREFIX}}Maintenance_Ticket",
29
+ "required": false
30
+ },
17
31
  "user": {
18
32
  "type": "Pointer",
19
33
  "targetClass": "_User",
@@ -0,0 +1,46 @@
1
+ {
2
+ "fields": {
3
+ "description": {
4
+ "type": "String",
5
+ "required": false
6
+ },
7
+ "file": {
8
+ "type": "File",
9
+ "required": true
10
+ },
11
+ "tenant": {
12
+ "type": "Pointer",
13
+ "targetClass": "{{PREFIX}}Tenant",
14
+ "required": false
15
+ },
16
+ "user": {
17
+ "type": "Pointer",
18
+ "targetClass": "_User",
19
+ "required": false
20
+ }
21
+ },
22
+ "classLevelPermissions": {
23
+ "find": {
24
+ "requiresAuthentication": true
25
+ },
26
+ "count": {
27
+ "requiresAuthentication": true
28
+ },
29
+ "get": {
30
+ "requiresAuthentication": true
31
+ },
32
+ "create": {
33
+ "requiresAuthentication": true
34
+ },
35
+ "update": {
36
+ "requiresAuthentication": true
37
+ },
38
+ "delete": {
39
+ "requiresAuthentication": true
40
+ },
41
+ "addField": {},
42
+ "protectedFields": {
43
+ "*": []
44
+ }
45
+ }
46
+ }
@@ -1,13 +1,54 @@
1
1
  {
2
2
  "fields": {
3
+ "category": {
4
+ "type": "String",
5
+ "required": false
6
+ },
3
7
  "description": {
4
8
  "type": "String",
5
9
  "required": false
6
10
  },
11
+ "internalNumber": {
12
+ "type": "String",
13
+ "required": false
14
+ },
7
15
  "name": {
8
16
  "type": "String",
9
17
  "required": true
10
18
  },
19
+ "orderNumber": {
20
+ "type": "String",
21
+ "required": false
22
+ },
23
+ "price": {
24
+ "type": "String",
25
+ "required": false
26
+ },
27
+ "sources": {
28
+ "type": "Relation",
29
+ "targetClass": "{{PREFIX}}Source",
30
+ "required": false
31
+ },
32
+ "stock": {
33
+ "type": "Number",
34
+ "required": false
35
+ },
36
+ "stockAlarmAt": {
37
+ "type": "Number",
38
+ "required": false
39
+ },
40
+ "stockUnit": {
41
+ "type": "String",
42
+ "required": false
43
+ },
44
+ "storageLocation": {
45
+ "type": "String",
46
+ "required": false
47
+ },
48
+ "supplier": {
49
+ "type": "String",
50
+ "required": false
51
+ },
11
52
  "tenant": {
12
53
  "type": "Pointer",
13
54
  "targetClass": "{{PREFIX}}Tenant",
@@ -25,6 +25,11 @@
25
25
  "type": "String",
26
26
  "required": false
27
27
  },
28
+ "role": {
29
+ "type": "Pointer",
30
+ "targetClass": "_Role",
31
+ "required": false
32
+ },
28
33
  "schedule": {
29
34
  "type": "Pointer",
30
35
  "targetClass": "{{PREFIX}}Maintenance_Schedule_Execution",
@@ -17,6 +17,11 @@
17
17
  "type": "String",
18
18
  "required": false
19
19
  },
20
+ "role": {
21
+ "type": "Pointer",
22
+ "targetClass": "_Role",
23
+ "required": false
24
+ },
20
25
  "schedule": {
21
26
  "type": "Pointer",
22
27
  "targetClass": "{{PREFIX}}Maintenance_Schedule",
@@ -0,0 +1,48 @@
1
+ {
2
+ "fields": {
3
+ "files": {
4
+ "type": "Relation",
5
+ "targetClass": "{{PREFIX}}Maintenance_File",
6
+ "required": false
7
+ },
8
+ "source": {
9
+ "type": "Pointer",
10
+ "targetClass": "{{PREFIX}}Source",
11
+ "required": false
12
+ },
13
+ "tenant": {
14
+ "type": "Pointer",
15
+ "targetClass": "{{PREFIX}}Tenant",
16
+ "required": false
17
+ },
18
+ "user": {
19
+ "type": "Pointer",
20
+ "targetClass": "_User",
21
+ "required": false
22
+ }
23
+ },
24
+ "classLevelPermissions": {
25
+ "find": {
26
+ "requiresAuthentication": true
27
+ },
28
+ "count": {
29
+ "requiresAuthentication": true
30
+ },
31
+ "get": {
32
+ "requiresAuthentication": true
33
+ },
34
+ "create": {
35
+ "requiresAuthentication": true
36
+ },
37
+ "update": {
38
+ "requiresAuthentication": true
39
+ },
40
+ "delete": {
41
+ "requiresAuthentication": true
42
+ },
43
+ "addField": {},
44
+ "protectedFields": {
45
+ "*": []
46
+ }
47
+ }
48
+ }
@@ -5,6 +5,11 @@
5
5
  "targetClass": "{{PREFIX}}Group",
6
6
  "required": false
7
7
  },
8
+ "assignedroles": {
9
+ "type": "Relation",
10
+ "targetClass": "_Role",
11
+ "required": false
12
+ },
8
13
  "assignedusers": {
9
14
  "type": "Relation",
10
15
  "targetClass": "_User",
@@ -20,6 +25,10 @@
20
25
  "required": false,
21
26
  "defaultValue": true
22
27
  },
28
+ "id_old": {
29
+ "type": "String",
30
+ "required": false
31
+ },
23
32
  "tenant": {
24
33
  "type": "Pointer",
25
34
  "targetClass": "{{PREFIX}}Tenant",
@@ -0,0 +1,50 @@
1
+ {
2
+ "fields": {
3
+ "state": {
4
+ "type": "Pointer",
5
+ "targetClass": "{{PREFIX}}Maintenance_Kanban_State",
6
+ "required": false
7
+ },
8
+ "tenant": {
9
+ "type": "Pointer",
10
+ "targetClass": "{{PREFIX}}Tenant",
11
+ "required": false
12
+ },
13
+ "ticket": {
14
+ "type": "Pointer",
15
+ "targetClass": "{{PREFIX}}Maintenance_Ticket",
16
+ "required": false
17
+ },
18
+ "ticketState": {
19
+ "type": "Pointer",
20
+ "targetClass": "{{PREFIX}}Maintenance_Ticket_Kanban_State",
21
+ "required": false
22
+ }
23
+ },
24
+ "classLevelPermissions": {
25
+ "find": {
26
+ "*": true
27
+ },
28
+ "count": {
29
+ "*": true
30
+ },
31
+ "get": {
32
+ "*": true
33
+ },
34
+ "create": {
35
+ "*": true
36
+ },
37
+ "update": {
38
+ "*": true
39
+ },
40
+ "delete": {
41
+ "*": true
42
+ },
43
+ "addField": {
44
+ "*": true
45
+ },
46
+ "protectedFields": {
47
+ "*": []
48
+ }
49
+ }
50
+ }
@@ -1,9 +1,17 @@
1
1
  {
2
2
  "fields": {
3
+ "description": {
4
+ "type": "String",
5
+ "required": false
6
+ },
3
7
  "key": {
4
8
  "type": "String",
5
9
  "required": true
6
10
  },
11
+ "label": {
12
+ "type": "String",
13
+ "required": false
14
+ },
7
15
  "tenant": {
8
16
  "type": "Pointer",
9
17
  "targetClass": "{{PREFIX}}Tenant",
@@ -1,10 +1,27 @@
1
1
  {
2
2
  "fields": {
3
+ "data": {
4
+ "type": "Object",
5
+ "required": false
6
+ },
7
+ "description": {
8
+ "type": "String",
9
+ "required": false
10
+ },
11
+ "file": {
12
+ "type": "File",
13
+ "required": false
14
+ },
3
15
  "location": {
4
16
  "type": "GeoPoint"
5
17
  },
6
18
  "name": {
7
19
  "type": "String"
20
+ },
21
+ "tenant": {
22
+ "type": "Pointer",
23
+ "targetClass": "{{PREFIX}}Tenant",
24
+ "required": false
8
25
  }
9
26
  },
10
27
  "classLevelPermissions": {