shared-ritm 1.2.135 → 1.2.137

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 (138) hide show
  1. package/README.md +103 -103
  2. package/dist/index.css +1 -1
  3. package/dist/shared-ritm.es.js +804 -795
  4. package/dist/shared-ritm.umd.js +38 -38
  5. package/dist/types/api/services/RepairsService.d.ts +2 -2
  6. package/dist/types/api/services/ScheduleService.d.ts +2 -1
  7. package/dist/types/api/services/UserService.d.ts +8 -1
  8. package/dist/types/api/types/Api_Instruments.d.ts +2 -2
  9. package/dist/types/api/types/Api_Repairs.d.ts +20 -0
  10. package/dist/types/api/types/Api_Schedule.d.ts +5 -0
  11. package/dist/types/api/types/Api_Search.d.ts +2 -0
  12. package/dist/types/api/types/Api_User.d.ts +8 -0
  13. package/package.json +64 -64
  14. package/src/App.vue +2461 -2461
  15. package/src/api/services/AuthService.ts +53 -53
  16. package/src/api/services/BrigadesService.ts +32 -32
  17. package/src/api/services/CommentsService.ts +24 -24
  18. package/src/api/services/ControlsService.ts +92 -92
  19. package/src/api/services/EquipmentService.ts +29 -29
  20. package/src/api/services/FileService.ts +17 -17
  21. package/src/api/services/GanttService.ts +17 -17
  22. package/src/api/services/InstrumentsService.ts +63 -63
  23. package/src/api/services/MetricsService.ts +110 -110
  24. package/src/api/services/ModulesService.ts +27 -27
  25. package/src/api/services/ProjectsService.ts +83 -83
  26. package/src/api/services/RepairsService.ts +124 -123
  27. package/src/api/services/ScheduleService.ts +69 -62
  28. package/src/api/services/SearchService.ts +22 -22
  29. package/src/api/services/TasksService.ts +145 -145
  30. package/src/api/services/UserService.ts +113 -101
  31. package/src/api/services/VideoService.ts +103 -103
  32. package/src/api/settings/ApiService.ts +124 -124
  33. package/src/api/types/Api_Auth.ts +86 -86
  34. package/src/api/types/Api_Brigades.ts +36 -36
  35. package/src/api/types/Api_Comment.ts +40 -40
  36. package/src/api/types/Api_Controls.ts +111 -111
  37. package/src/api/types/Api_Equipment.ts +3 -3
  38. package/src/api/types/Api_Files.ts +7 -7
  39. package/src/api/types/Api_Instruments.ts +136 -136
  40. package/src/api/types/Api_Modules.ts +21 -21
  41. package/src/api/types/Api_Projects.ts +61 -61
  42. package/src/api/types/Api_Repairs.ts +138 -117
  43. package/src/api/types/Api_Schedule.ts +64 -58
  44. package/src/api/types/Api_Search.ts +79 -77
  45. package/src/api/types/Api_Service.ts +9 -9
  46. package/src/api/types/Api_Tasks.ts +319 -319
  47. package/src/api/types/Api_User.ts +140 -117
  48. package/src/api/types/Api_Video.ts +145 -145
  49. package/src/common/app-button/AppButton.vue +173 -173
  50. package/src/common/app-checkbox/AppCheckbox.vue +26 -26
  51. package/src/common/app-date-picker/AppDatePicker.vue +81 -81
  52. package/src/common/app-datepicker/AppDatepicker.vue +166 -166
  53. package/src/common/app-dialogs/AppConfirmDialog.vue +99 -99
  54. package/src/common/app-dropdown/AppDropdown.vue +37 -37
  55. package/src/common/app-icon/AppIcon.vue +108 -108
  56. package/src/common/app-input/AppInput.vue +148 -148
  57. package/src/common/app-input-new/AppInputNew.vue +175 -175
  58. package/src/common/app-input-search/AppInputSearch.vue +174 -174
  59. package/src/common/app-layout/AppLayout.vue +84 -84
  60. package/src/common/app-layout/components/AppLayoutHeader.vue +273 -273
  61. package/src/common/app-layout/components/AppLayoutPage.vue +16 -16
  62. package/src/common/app-loader/index.vue +43 -43
  63. package/src/common/app-page-layout/AppPageLayout.vue +122 -122
  64. package/src/common/app-select/AppSelect.vue +157 -157
  65. package/src/common/app-sheet/AppSheet.vue +120 -120
  66. package/src/common/app-sheet-new/AppSheetNew.vue +244 -244
  67. package/src/common/app-sidebar/AppSidebar.vue +168 -168
  68. package/src/common/app-sidebar/components/SidebarMenu.vue +37 -37
  69. package/src/common/app-sidebar/components/SidebarMenuItem.vue +148 -148
  70. package/src/common/app-table/AppTable.vue +308 -308
  71. package/src/common/app-table/AppTableLayout.vue +137 -137
  72. package/src/common/app-table/components/ModalSelect.vue +285 -285
  73. package/src/common/app-table/components/TableModal.vue +356 -356
  74. package/src/common/app-table/components/TablePagination.vue +152 -152
  75. package/src/common/app-table/controllers/useBaseTable.ts +45 -45
  76. package/src/common/app-table/controllers/useColumnSelector.ts +38 -38
  77. package/src/common/app-table/controllers/useTableModel.ts +102 -102
  78. package/src/common/app-toggle/AppToggle.vue +24 -24
  79. package/src/common/app-wrapper/AppWrapper.vue +28 -28
  80. package/src/global.d.ts +1 -1
  81. package/src/icons/components/arrow-down-icon.vue +25 -25
  82. package/src/icons/components/arrow-frame-icon.vue +19 -19
  83. package/src/icons/components/arrow-square.vue +22 -22
  84. package/src/icons/components/table-filter-icon.vue +30 -30
  85. package/src/icons/dialogs/RemoveIcon.vue +12 -12
  86. package/src/icons/dialogs/SafetyIcon.vue +12 -12
  87. package/src/icons/header/NotificationIcon.vue +18 -18
  88. package/src/icons/header/PersonIcon.vue +11 -11
  89. package/src/icons/header/SettingIcon.vue +14 -14
  90. package/src/icons/header/flashIcon.vue +24 -24
  91. package/src/icons/header/searchStatusIcon.vue +24 -24
  92. package/src/icons/header/smallCapsIcon.vue +34 -34
  93. package/src/icons/sidebar/assign-module-icon.vue +36 -36
  94. package/src/icons/sidebar/instrument-history-icon.vue +32 -32
  95. package/src/icons/sidebar/instrument-order-icon.vue +38 -38
  96. package/src/icons/sidebar/instrument-work-zone-icon.vue +18 -18
  97. package/src/icons/sidebar/instruments-icon.vue +45 -45
  98. package/src/icons/sidebar/logo-icon.vue +15 -15
  99. package/src/icons/sidebar/logout-icon.vue +13 -13
  100. package/src/icons/sidebar/modules-icon.vue +16 -16
  101. package/src/icons/sidebar/notifications-icon.vue +24 -24
  102. package/src/icons/sidebar/order-icon.vue +44 -44
  103. package/src/icons/sidebar/pass-icon.vue +38 -38
  104. package/src/icons/sidebar/positions-icon.vue +42 -42
  105. package/src/icons/sidebar/preorder-icon.vue +19 -19
  106. package/src/icons/sidebar/projects-icon.vue +31 -31
  107. package/src/icons/sidebar/repair-object-icon.vue +18 -18
  108. package/src/icons/sidebar/repairs-icon.vue +20 -20
  109. package/src/icons/sidebar/roles-icon.vue +26 -26
  110. package/src/icons/sidebar/status-history-icon.vue +24 -24
  111. package/src/icons/sidebar/tasks-icon.vue +28 -28
  112. package/src/icons/sidebar/tasks_tasks-icon.vue +39 -39
  113. package/src/icons/sidebar/tasks_today-icon.vue +27 -27
  114. package/src/icons/sidebar/teams-icon.vue +32 -32
  115. package/src/icons/sidebar/user-icon.vue +18 -18
  116. package/src/icons/sidebar/users-icon.vue +46 -46
  117. package/src/icons/sidebar/videosources-icon.vue +19 -19
  118. package/src/icons/sidebar/videowall-icon.vue +13 -13
  119. package/src/icons/sidebar/videozones-icon.vue +21 -21
  120. package/src/icons/sidebar/warehouses-icon.vue +43 -43
  121. package/src/icons/sidebar/workshop-icon.vue +100 -100
  122. package/src/icons/sidebar/workzones-icon.vue +22 -22
  123. package/src/icons/task/attention-icon.vue +13 -13
  124. package/src/icons/task/clock-icon.vue +10 -10
  125. package/src/icons/task/delete-icon.vue +10 -10
  126. package/src/icons/task/fire-icon.vue +16 -16
  127. package/src/index.ts +126 -126
  128. package/src/main.ts +28 -28
  129. package/src/quasar-user-options.ts +17 -17
  130. package/src/router/index.ts +10 -10
  131. package/src/shared/styles/general.css +124 -124
  132. package/src/shims-vue.d.ts +5 -5
  133. package/src/styles/variables.sass +12 -12
  134. package/src/utils/confirm.ts +12 -12
  135. package/src/utils/faceApiHelper.ts +132 -132
  136. package/src/utils/helpers.ts +59 -59
  137. package/src/utils/notification.ts +9 -9
  138. package/dist/types/api/services/PhotoService.d.ts +0 -40
@@ -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,117 +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
- }
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,58 +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
- }
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
+ }