shared-ritm 1.2.137 → 1.2.138

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 (130) hide show
  1. package/README.md +103 -103
  2. package/dist/index.css +1 -1
  3. package/dist/shared-ritm.es.js +174 -166
  4. package/dist/shared-ritm.umd.js +38 -38
  5. package/dist/types/api/services/PhotoService.d.ts +40 -0
  6. package/package.json +64 -64
  7. package/src/App.vue +2461 -2461
  8. package/src/api/services/AuthService.ts +53 -53
  9. package/src/api/services/BrigadesService.ts +32 -32
  10. package/src/api/services/CommentsService.ts +24 -24
  11. package/src/api/services/ControlsService.ts +92 -92
  12. package/src/api/services/EquipmentService.ts +29 -29
  13. package/src/api/services/FileService.ts +17 -17
  14. package/src/api/services/GanttService.ts +17 -17
  15. package/src/api/services/InstrumentsService.ts +63 -63
  16. package/src/api/services/MetricsService.ts +110 -110
  17. package/src/api/services/ModulesService.ts +27 -27
  18. package/src/api/services/ProjectsService.ts +83 -83
  19. package/src/api/services/RepairsService.ts +124 -124
  20. package/src/api/services/ScheduleService.ts +69 -69
  21. package/src/api/services/SearchService.ts +22 -22
  22. package/src/api/services/TasksService.ts +145 -145
  23. package/src/api/services/UserService.ts +113 -113
  24. package/src/api/services/VideoService.ts +103 -103
  25. package/src/api/settings/ApiService.ts +124 -124
  26. package/src/api/types/Api_Auth.ts +86 -86
  27. package/src/api/types/Api_Brigades.ts +36 -36
  28. package/src/api/types/Api_Comment.ts +40 -40
  29. package/src/api/types/Api_Controls.ts +111 -111
  30. package/src/api/types/Api_Equipment.ts +3 -3
  31. package/src/api/types/Api_Files.ts +7 -7
  32. package/src/api/types/Api_Instruments.ts +136 -136
  33. package/src/api/types/Api_Modules.ts +21 -21
  34. package/src/api/types/Api_Projects.ts +61 -61
  35. package/src/api/types/Api_Repairs.ts +138 -138
  36. package/src/api/types/Api_Schedule.ts +64 -64
  37. package/src/api/types/Api_Search.ts +79 -79
  38. package/src/api/types/Api_Service.ts +9 -9
  39. package/src/api/types/Api_Tasks.ts +319 -319
  40. package/src/api/types/Api_User.ts +140 -140
  41. package/src/api/types/Api_Video.ts +145 -145
  42. package/src/common/app-button/AppButton.vue +173 -173
  43. package/src/common/app-checkbox/AppCheckbox.vue +26 -26
  44. package/src/common/app-date-picker/AppDatePicker.vue +81 -81
  45. package/src/common/app-datepicker/AppDatepicker.vue +176 -166
  46. package/src/common/app-dialogs/AppConfirmDialog.vue +99 -99
  47. package/src/common/app-dropdown/AppDropdown.vue +37 -37
  48. package/src/common/app-icon/AppIcon.vue +108 -108
  49. package/src/common/app-input/AppInput.vue +148 -148
  50. package/src/common/app-input-new/AppInputNew.vue +175 -175
  51. package/src/common/app-input-search/AppInputSearch.vue +174 -174
  52. package/src/common/app-layout/AppLayout.vue +84 -84
  53. package/src/common/app-layout/components/AppLayoutHeader.vue +273 -273
  54. package/src/common/app-layout/components/AppLayoutPage.vue +16 -16
  55. package/src/common/app-loader/index.vue +43 -43
  56. package/src/common/app-page-layout/AppPageLayout.vue +122 -122
  57. package/src/common/app-select/AppSelect.vue +157 -157
  58. package/src/common/app-sheet/AppSheet.vue +120 -120
  59. package/src/common/app-sheet-new/AppSheetNew.vue +244 -244
  60. package/src/common/app-sidebar/AppSidebar.vue +168 -168
  61. package/src/common/app-sidebar/components/SidebarMenu.vue +37 -37
  62. package/src/common/app-sidebar/components/SidebarMenuItem.vue +148 -148
  63. package/src/common/app-table/AppTable.vue +308 -308
  64. package/src/common/app-table/AppTableLayout.vue +137 -137
  65. package/src/common/app-table/components/ModalSelect.vue +285 -285
  66. package/src/common/app-table/components/TableModal.vue +356 -356
  67. package/src/common/app-table/components/TablePagination.vue +152 -152
  68. package/src/common/app-table/controllers/useBaseTable.ts +45 -45
  69. package/src/common/app-table/controllers/useColumnSelector.ts +38 -38
  70. package/src/common/app-table/controllers/useTableModel.ts +102 -102
  71. package/src/common/app-toggle/AppToggle.vue +24 -24
  72. package/src/common/app-wrapper/AppWrapper.vue +28 -28
  73. package/src/global.d.ts +1 -1
  74. package/src/icons/components/arrow-down-icon.vue +25 -25
  75. package/src/icons/components/arrow-frame-icon.vue +19 -19
  76. package/src/icons/components/arrow-square.vue +22 -22
  77. package/src/icons/components/table-filter-icon.vue +30 -30
  78. package/src/icons/dialogs/RemoveIcon.vue +12 -12
  79. package/src/icons/dialogs/SafetyIcon.vue +12 -12
  80. package/src/icons/header/NotificationIcon.vue +18 -18
  81. package/src/icons/header/PersonIcon.vue +11 -11
  82. package/src/icons/header/SettingIcon.vue +14 -14
  83. package/src/icons/header/flashIcon.vue +24 -24
  84. package/src/icons/header/searchStatusIcon.vue +24 -24
  85. package/src/icons/header/smallCapsIcon.vue +34 -34
  86. package/src/icons/sidebar/assign-module-icon.vue +36 -36
  87. package/src/icons/sidebar/instrument-history-icon.vue +32 -32
  88. package/src/icons/sidebar/instrument-order-icon.vue +38 -38
  89. package/src/icons/sidebar/instrument-work-zone-icon.vue +18 -18
  90. package/src/icons/sidebar/instruments-icon.vue +45 -45
  91. package/src/icons/sidebar/logo-icon.vue +15 -15
  92. package/src/icons/sidebar/logout-icon.vue +13 -13
  93. package/src/icons/sidebar/modules-icon.vue +16 -16
  94. package/src/icons/sidebar/notifications-icon.vue +24 -24
  95. package/src/icons/sidebar/order-icon.vue +44 -44
  96. package/src/icons/sidebar/pass-icon.vue +38 -38
  97. package/src/icons/sidebar/positions-icon.vue +42 -42
  98. package/src/icons/sidebar/preorder-icon.vue +19 -19
  99. package/src/icons/sidebar/projects-icon.vue +31 -31
  100. package/src/icons/sidebar/repair-object-icon.vue +18 -18
  101. package/src/icons/sidebar/repairs-icon.vue +20 -20
  102. package/src/icons/sidebar/roles-icon.vue +26 -26
  103. package/src/icons/sidebar/status-history-icon.vue +24 -24
  104. package/src/icons/sidebar/tasks-icon.vue +28 -28
  105. package/src/icons/sidebar/tasks_tasks-icon.vue +39 -39
  106. package/src/icons/sidebar/tasks_today-icon.vue +27 -27
  107. package/src/icons/sidebar/teams-icon.vue +32 -32
  108. package/src/icons/sidebar/user-icon.vue +18 -18
  109. package/src/icons/sidebar/users-icon.vue +46 -46
  110. package/src/icons/sidebar/videosources-icon.vue +19 -19
  111. package/src/icons/sidebar/videowall-icon.vue +13 -13
  112. package/src/icons/sidebar/videozones-icon.vue +21 -21
  113. package/src/icons/sidebar/warehouses-icon.vue +43 -43
  114. package/src/icons/sidebar/workshop-icon.vue +100 -100
  115. package/src/icons/sidebar/workzones-icon.vue +22 -22
  116. package/src/icons/task/attention-icon.vue +13 -13
  117. package/src/icons/task/clock-icon.vue +10 -10
  118. package/src/icons/task/delete-icon.vue +10 -10
  119. package/src/icons/task/fire-icon.vue +16 -16
  120. package/src/index.ts +126 -126
  121. package/src/main.ts +28 -28
  122. package/src/quasar-user-options.ts +17 -17
  123. package/src/router/index.ts +10 -10
  124. package/src/shared/styles/general.css +124 -124
  125. package/src/shims-vue.d.ts +5 -5
  126. package/src/styles/variables.sass +12 -12
  127. package/src/utils/confirm.ts +12 -12
  128. package/src/utils/faceApiHelper.ts +132 -132
  129. package/src/utils/helpers.ts +59 -59
  130. package/src/utils/notification.ts +9 -9
@@ -1,21 +1,21 @@
1
- import { Api_Search_Module } from '@/api/types/Api_Search'
2
- import { Api_Instrument, Api_Instrument_Location } from '@/api/types/Api_Instruments'
3
-
4
- export type Api_Module_Create = Pick<Api_Search_Module, 'RFID' | 'inventory_number' | 'title' | 'type'> & {
5
- user_id: string
6
- teams: string[]
7
- }
8
-
9
- export type Api_Module = Api_Search_Module & {
10
- auth_count: number
11
- auth_failed_count: number
12
- instrument: Pick<Api_Instrument, 'id' | 'RFID' | 'instrument_id' | 'inventory_number' | 'name'> | null
13
- inventory_completed_count: number
14
- location: Pick<Api_Instrument_Location, 'id' | 'name' | 'title' | 'state_id' | 'description'> | null
15
- location_id: string | null
16
- team_id: string | null
17
- tun: unknown
18
- user_id: string
19
- warehouse_id: string | null
20
- work_zones: unknown[]
21
- }
1
+ import { Api_Search_Module } from '@/api/types/Api_Search'
2
+ import { Api_Instrument, Api_Instrument_Location } from '@/api/types/Api_Instruments'
3
+
4
+ export type Api_Module_Create = Pick<Api_Search_Module, 'RFID' | 'inventory_number' | 'title' | 'type'> & {
5
+ user_id: string
6
+ teams: string[]
7
+ }
8
+
9
+ export type Api_Module = Api_Search_Module & {
10
+ auth_count: number
11
+ auth_failed_count: number
12
+ instrument: Pick<Api_Instrument, 'id' | 'RFID' | 'instrument_id' | 'inventory_number' | 'name'> | null
13
+ inventory_completed_count: number
14
+ location: Pick<Api_Instrument_Location, 'id' | 'name' | 'title' | 'state_id' | 'description'> | null
15
+ location_id: string | null
16
+ team_id: string | null
17
+ tun: unknown
18
+ user_id: string
19
+ warehouse_id: string | null
20
+ work_zones: unknown[]
21
+ }
@@ -1,61 +1,61 @@
1
- export type Api_Project_Repair = {
2
- id: string
3
- name: string
4
- start_date: null | string
5
- end_date: null | string
6
- }
7
-
8
- export type Api_Project_Team = {
9
- id: string
10
- name: string
11
- display_name: string
12
- description: string
13
- created_at: string
14
- updated_at: string
15
- pivot: {
16
- project_id: string
17
- team_id: string
18
- }
19
- }
20
-
21
- export type Api_Project_Category = {
22
- code: number
23
- display_name: string
24
- name: string
25
- }
26
-
27
- export type Api_Project_Status = {
28
- id: string
29
- name: string
30
- title: string
31
- description: string
32
- created_at: string | null
33
- updated_at: string | null
34
- deleted_at: string | null
35
- }
36
-
37
- export type Api_Project_Dto = {
38
- id: string
39
- name: string
40
- description: null
41
- image: null
42
- plan_date: string | null
43
- deadline: string | null
44
- fact_start_date: string | null
45
- fact_end_date: string | null
46
- planned_start: string | null
47
- planned_end: string | null
48
- deleted_at: string | null
49
- total_tasks: number
50
- is_archive: boolean
51
- teams: Api_Project_Team[]
52
- status: Api_Project_Status
53
- category: Api_Project_Category
54
- repair: Api_Project_Repair | null
55
- schedule_id: string | null
56
- }
57
-
58
- export type Api_Project_Add_Root_Intervals_Payload = {
59
- history: number
60
- with_status_in_progress: number
61
- }
1
+ export type Api_Project_Repair = {
2
+ id: string
3
+ name: string
4
+ start_date: null | string
5
+ end_date: null | string
6
+ }
7
+
8
+ export type Api_Project_Team = {
9
+ id: string
10
+ name: string
11
+ display_name: string
12
+ description: string
13
+ created_at: string
14
+ updated_at: string
15
+ pivot: {
16
+ project_id: string
17
+ team_id: string
18
+ }
19
+ }
20
+
21
+ export type Api_Project_Category = {
22
+ code: number
23
+ display_name: string
24
+ name: string
25
+ }
26
+
27
+ export type Api_Project_Status = {
28
+ id: string
29
+ name: string
30
+ title: string
31
+ description: string
32
+ created_at: string | null
33
+ updated_at: string | null
34
+ deleted_at: string | null
35
+ }
36
+
37
+ export type Api_Project_Dto = {
38
+ id: string
39
+ name: string
40
+ description: null
41
+ image: null
42
+ plan_date: string | null
43
+ deadline: string | null
44
+ fact_start_date: string | null
45
+ fact_end_date: string | null
46
+ planned_start: string | null
47
+ planned_end: string | null
48
+ deleted_at: string | null
49
+ total_tasks: number
50
+ is_archive: boolean
51
+ teams: Api_Project_Team[]
52
+ status: Api_Project_Status
53
+ category: Api_Project_Category
54
+ repair: Api_Project_Repair | null
55
+ schedule_id: string | null
56
+ }
57
+
58
+ export type Api_Project_Add_Root_Intervals_Payload = {
59
+ history: number
60
+ with_status_in_progress: number
61
+ }
@@ -1,138 +1,138 @@
1
- export type Api_Team = {
2
- id: string
3
- display_name: string
4
- }
5
-
6
- export type Api_Equipment_Short_Dto = {
7
- id: string
8
- name: string
9
- }
10
-
11
- export type Api_Repairs = {
12
- id: string
13
- name: string
14
- }
15
-
16
- export type Api_Projects = {
17
- id: string
18
- name: string
19
- }
20
-
21
- export type OptionFilters = {
22
- teams?: Api_Team[]
23
- equipments?: Api_Equipment_Short_Dto[]
24
- }
25
-
26
- export type Api_Equipment_Full_Dto = {
27
- id: string
28
- model: null | string
29
- name: string
30
- registration_number: string
31
- repair_frequency: number
32
- repair_range: number
33
- }
34
-
35
- export type Api_Work_Zone_By_Tasks = {
36
- coordinates: { x0: number; x1: number; y0: number; y1: number }
37
- id: string
38
- tasks: unknown[]
39
- title: string
40
- }
41
-
42
- export type Api_Task_Video_Source = {
43
- id: string
44
- name: string
45
- work_zones_by_tasks: Api_Work_Zone_By_Tasks[]
46
- }
47
-
48
- export type Api_Task_Video_Source_Stream = {
49
- id: string
50
- name: string
51
- url: string
52
- width: number
53
- height: number
54
- fps: string
55
- login: string
56
- password: string
57
- comment: unknown
58
- work_zones: unknown[]
59
- video_source: unknown[]
60
- related_video_sources: unknown[]
61
- interactive_zones: unknown
62
- domed: boolean
63
- snapshot_path: string
64
- shapes: unknown[]
65
- }
66
-
67
- export type Api_Create_Repair_With_Equipments = {
68
- name: string
69
- display_name: string
70
- description?: string
71
- equipment_id: string
72
- power_output_MWh?: number
73
- cost_per_MWh?: number
74
- category: number
75
- user_id_list?: string[]
76
- team_id_list?: string[]
77
- }
78
-
79
- export type Api_Create_Repair_With_Template = Omit<Api_Create_Repair_With_Equipments, 'category' | 'equipment_id'> & {
80
- repair_template_id: string
81
- plan_start_date: string
82
- task_id_list: string[]
83
- }
84
-
85
- export type Api_Update_Repair = {
86
- name?: string
87
- display_name?: string
88
- description?: string | null
89
- power_output_MWh?: number | null
90
- cost_per_MWh?: number | null
91
- category?: number
92
- user_id_list?: string[]
93
- team_id_list?: string[]
94
- }
95
-
96
- export type Api_Repair_Dto = {
97
- id: string
98
- name: string
99
- display_name: string
100
- description: string
101
- start_date: string
102
- end_date: string
103
- projects: Api_Projects[]
104
- equipments: Api_Equipment_Full_Dto[]
105
- }
106
-
107
- export type Api_Repair_Template = {
108
- id: string
109
- repair_seconds: number
110
- equipment: Pick<Api_Equipment_Full_Dto, 'id' | 'name' | 'registration_number'>
111
- category: {
112
- display_name: string
113
- name: string
114
- code: number
115
- }
116
- task_list: string
117
- }
118
-
119
- export type Api_Repair_Intersection = {
120
- position: {
121
- name: string
122
- display_name: string
123
- }
124
- status: {
125
- id: string
126
- name: string
127
- display_name: string
128
- }
129
- task: {
130
- id: string
131
- name: string
132
- project_id: string
133
- }
134
- user: {
135
- id: string
136
- full_name: string
137
- }
138
- }
1
+ export type Api_Team = {
2
+ id: string
3
+ display_name: string
4
+ }
5
+
6
+ export type Api_Equipment_Short_Dto = {
7
+ id: string
8
+ name: string
9
+ }
10
+
11
+ export type Api_Repairs = {
12
+ id: string
13
+ name: string
14
+ }
15
+
16
+ export type Api_Projects = {
17
+ id: string
18
+ name: string
19
+ }
20
+
21
+ export type OptionFilters = {
22
+ teams?: Api_Team[]
23
+ equipments?: Api_Equipment_Short_Dto[]
24
+ }
25
+
26
+ export type Api_Equipment_Full_Dto = {
27
+ id: string
28
+ model: null | string
29
+ name: string
30
+ registration_number: string
31
+ repair_frequency: number
32
+ repair_range: number
33
+ }
34
+
35
+ export type Api_Work_Zone_By_Tasks = {
36
+ coordinates: { x0: number; x1: number; y0: number; y1: number }
37
+ id: string
38
+ tasks: unknown[]
39
+ title: string
40
+ }
41
+
42
+ export type Api_Task_Video_Source = {
43
+ id: string
44
+ name: string
45
+ work_zones_by_tasks: Api_Work_Zone_By_Tasks[]
46
+ }
47
+
48
+ export type Api_Task_Video_Source_Stream = {
49
+ id: string
50
+ name: string
51
+ url: string
52
+ width: number
53
+ height: number
54
+ fps: string
55
+ login: string
56
+ password: string
57
+ comment: unknown
58
+ work_zones: unknown[]
59
+ video_source: unknown[]
60
+ related_video_sources: unknown[]
61
+ interactive_zones: unknown
62
+ domed: boolean
63
+ snapshot_path: string
64
+ shapes: unknown[]
65
+ }
66
+
67
+ export type Api_Create_Repair_With_Equipments = {
68
+ name: string
69
+ display_name: string
70
+ description?: string
71
+ equipment_id: string
72
+ power_output_MWh?: number
73
+ cost_per_MWh?: number
74
+ category: number
75
+ user_id_list?: string[]
76
+ team_id_list?: string[]
77
+ }
78
+
79
+ export type Api_Create_Repair_With_Template = Omit<Api_Create_Repair_With_Equipments, 'category' | 'equipment_id'> & {
80
+ repair_template_id: string
81
+ plan_start_date: string
82
+ task_id_list: string[]
83
+ }
84
+
85
+ export type Api_Update_Repair = {
86
+ name?: string
87
+ display_name?: string
88
+ description?: string | null
89
+ power_output_MWh?: number | null
90
+ cost_per_MWh?: number | null
91
+ category?: number
92
+ user_id_list?: string[]
93
+ team_id_list?: string[]
94
+ }
95
+
96
+ export type Api_Repair_Dto = {
97
+ id: string
98
+ name: string
99
+ display_name: string
100
+ description: string
101
+ start_date: string
102
+ end_date: string
103
+ projects: Api_Projects[]
104
+ equipments: Api_Equipment_Full_Dto[]
105
+ }
106
+
107
+ export type Api_Repair_Template = {
108
+ id: string
109
+ repair_seconds: number
110
+ equipment: Pick<Api_Equipment_Full_Dto, 'id' | 'name' | 'registration_number'>
111
+ category: {
112
+ display_name: string
113
+ name: string
114
+ code: number
115
+ }
116
+ task_list: string
117
+ }
118
+
119
+ export type Api_Repair_Intersection = {
120
+ position: {
121
+ name: string
122
+ display_name: string
123
+ }
124
+ status: {
125
+ id: string
126
+ name: string
127
+ display_name: string
128
+ }
129
+ task: {
130
+ id: string
131
+ name: string
132
+ project_id: string
133
+ }
134
+ user: {
135
+ id: string
136
+ full_name: string
137
+ }
138
+ }
@@ -1,64 +1,64 @@
1
- export type Api_Schedule_Shift_Template = {
2
- id: string
3
- name: string
4
- from: string
5
- to: string
6
- }
7
-
8
- export type Api_Schedule_Config = {
9
- shift_templates: Api_Schedule_Shift_Template[]
10
- }
11
-
12
- export type Api_Schedule_Complete_Brigade = {
13
- brigade_id: string
14
- initial_first: string
15
- initial_last: string
16
- shift_template_id: string
17
- }
18
-
19
- export type Api_Schedule_Table_Brigade = {
20
- id: string
21
- name: string
22
- initial_first: string
23
- initial_last: string
24
- initial_shift_template: Api_Schedule_Shift_Template
25
- assigned_positions: number
26
- total_positions: number
27
- task_master: unknown | null
28
- is_deleted: boolean
29
- }
30
-
31
- export type Api_Schedule_Add_Shift = {
32
- brigade_id: string
33
- dates: string[]
34
- shift_template_id: string
35
- }
36
-
37
- export type Api_Schedule_Swap_Shifts = {
38
- brigade_id: string
39
- shifts: string[]
40
- }
41
-
42
- export type Api_Schedule_Edit_Shifts = {
43
- brigade_id: string
44
- shift_ids: string[]
45
- shift_template_id: string
46
- }
47
-
48
- export type Api_Schedule_Shift = {
49
- id: string
50
- from: string
51
- to: string
52
- shift_template: Api_Schedule_Shift_Template
53
- }
54
-
55
- export type Api_Schedule_Item = {
56
- brigade: Api_Schedule_Table_Brigade
57
- shifts: { date: string; shift: Api_Schedule_Shift }[]
58
- }
59
-
60
- export type Api_Schedule_Brigade_To_Swap = {
61
- id: string
62
- name: string
63
- shift_template: Api_Schedule_Shift_Template
64
- }
1
+ export type Api_Schedule_Shift_Template = {
2
+ id: string
3
+ name: string
4
+ from: string
5
+ to: string
6
+ }
7
+
8
+ export type Api_Schedule_Config = {
9
+ shift_templates: Api_Schedule_Shift_Template[]
10
+ }
11
+
12
+ export type Api_Schedule_Complete_Brigade = {
13
+ brigade_id: string
14
+ initial_first: string
15
+ initial_last: string
16
+ shift_template_id: string
17
+ }
18
+
19
+ export type Api_Schedule_Table_Brigade = {
20
+ id: string
21
+ name: string
22
+ initial_first: string
23
+ initial_last: string
24
+ initial_shift_template: Api_Schedule_Shift_Template
25
+ assigned_positions: number
26
+ total_positions: number
27
+ task_master: unknown | null
28
+ is_deleted: boolean
29
+ }
30
+
31
+ export type Api_Schedule_Add_Shift = {
32
+ brigade_id: string
33
+ dates: string[]
34
+ shift_template_id: string
35
+ }
36
+
37
+ export type Api_Schedule_Swap_Shifts = {
38
+ brigade_id: string
39
+ shifts: string[]
40
+ }
41
+
42
+ export type Api_Schedule_Edit_Shifts = {
43
+ brigade_id: string
44
+ shift_ids: string[]
45
+ shift_template_id: string
46
+ }
47
+
48
+ export type Api_Schedule_Shift = {
49
+ id: string
50
+ from: string
51
+ to: string
52
+ shift_template: Api_Schedule_Shift_Template
53
+ }
54
+
55
+ export type Api_Schedule_Item = {
56
+ brigade: Api_Schedule_Table_Brigade
57
+ shifts: { date: string; shift: Api_Schedule_Shift }[]
58
+ }
59
+
60
+ export type Api_Schedule_Brigade_To_Swap = {
61
+ id: string
62
+ name: string
63
+ shift_template: Api_Schedule_Shift_Template
64
+ }