shared-ritm 1.2.103 → 1.2.105

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 (33) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/shared-ritm.es.js +3025 -3001
  3. package/dist/shared-ritm.umd.js +148 -148
  4. package/dist/types/api/services/BrigadesService.d.ts +18 -0
  5. package/dist/types/api/services/PhotoService.d.ts +38 -51
  6. package/dist/types/api/types/Api_Brigades.d.ts +31 -0
  7. package/dist/types/api/types/Api_Tasks.d.ts +3 -1
  8. package/dist/types/index.d.ts +3 -1
  9. package/package.json +64 -64
  10. package/src/api/services/BrigadesService.ts +32 -0
  11. package/src/api/services/EquipmentService.ts +29 -29
  12. package/src/api/services/InstrumentsService.ts +22 -22
  13. package/src/api/services/UserService.ts +101 -101
  14. package/src/api/services/VideoService.ts +62 -62
  15. package/src/api/settings/ApiService.ts +126 -123
  16. package/src/api/types/Api_Brigades.ts +36 -0
  17. package/src/api/types/Api_Equipment.ts +3 -3
  18. package/src/api/types/Api_Instruments.ts +98 -98
  19. package/src/api/types/Api_Tasks.ts +3 -1
  20. package/src/api/types/Api_User.ts +117 -117
  21. package/src/api/types/Api_Video.ts +123 -123
  22. package/src/common/app-input-new/AppInputNew.vue +167 -167
  23. package/src/common/app-layout/components/AppLayoutHeader.vue +250 -250
  24. package/src/common/app-sheet-new/AppSheetNew.vue +246 -246
  25. package/src/common/app-table/AppTable.vue +312 -312
  26. package/src/common/app-table/AppTableLayout.vue +137 -137
  27. package/src/common/app-table/components/ModalSelect.vue +270 -270
  28. package/src/common/app-table/components/TableModal.vue +356 -356
  29. package/src/common/app-table/controllers/useBaseTable.ts +45 -45
  30. package/src/index.ts +119 -116
  31. package/src/styles/variables.sass +12 -12
  32. package/dist/types/api/services/ComentsServise.d.ts +0 -10
  33. package/dist/types/api/types/Api_Users.d.ts +0 -43
@@ -0,0 +1,18 @@
1
+ import ApiService from '../settings/ApiService';
2
+ import { Api_Brigade, Api_Brigade_Create, Api_Brigade_Search } from '../types/Api_Brigades';
3
+ import { ResponseApi } from '../types/Api_Service';
4
+ declare class BrigadesService extends ApiService {
5
+ fetchBrigades(params: any): Promise<ResponseApi<Api_Brigade_Search[]>>;
6
+ editBrigade({ id, model }: {
7
+ id: string;
8
+ model: Partial<Api_Brigade_Create>;
9
+ }): Promise<Api_Brigade>;
10
+ getBrigade(id: string): Promise<Api_Brigade>;
11
+ createBrigade(model: Api_Brigade_Create): Promise<Api_Brigade>;
12
+ deleteBrigade(id: string): Promise<{
13
+ data: boolean;
14
+ status: number;
15
+ }>;
16
+ }
17
+ export default function useBrigadesService(): BrigadesService;
18
+ export {};
@@ -1,53 +1,40 @@
1
- import * as faceapi from 'face-api.js'
1
+ import * as faceapi from 'face-api.js';
2
2
  declare class PhotoService {
3
- getVideoStreamConfig(
4
- width: number,
5
- height: number,
6
- ): {
7
- audio: boolean
8
- video: {
9
- width: {
10
- min: number
11
- ideal: number
12
- }
13
- height: {
14
- min: number
15
- ideal: number
16
- }
17
- facingMode: string
18
- }
19
- }
20
- getContourCoordinate(
21
- width: number,
22
- height: number,
23
- ): {
24
- x: number
25
- y: number
26
- width: number
27
- height: number
28
- }
29
- getBoxData(box: any): {
30
- x: any
31
- y: any
32
- width: any
33
- height: any
34
- } | null
35
- setStylesForCanvas(canvasContainer: any): void
36
- checkFaceInclusion(frame: any, face: any): boolean
37
- getFaceDetections(videoRef: any): Promise<
38
- faceapi.WithFaceExpressions<
39
- faceapi.WithFaceLandmarks<
40
- {
41
- detection: faceapi.FaceDetection
42
- },
43
- faceapi.FaceLandmarks68
44
- >
45
- >[]
46
- >
47
- getCanvas(videoRef: any): HTMLCanvasElement
48
- getResizedAndDetection(canvas: any, detections: any, ctx: any, videoWidth: number, videoHeight: number): void
49
- getFaceSnapshot(inputImage: any, box: any): Promise<string | null>
50
- initModels(): Promise<void>
3
+ getVideoStreamConfig(width: number, height: number): {
4
+ audio: boolean;
5
+ video: {
6
+ width: {
7
+ min: number;
8
+ ideal: number;
9
+ };
10
+ height: {
11
+ min: number;
12
+ ideal: number;
13
+ };
14
+ facingMode: string;
15
+ };
16
+ };
17
+ getContourCoordinate(width: number, height: number): {
18
+ x: number;
19
+ y: number;
20
+ width: number;
21
+ height: number;
22
+ };
23
+ getBoxData(box: any): {
24
+ x: any;
25
+ y: any;
26
+ width: any;
27
+ height: any;
28
+ } | null;
29
+ setStylesForCanvas(canvasContainer: any): void;
30
+ checkFaceInclusion(frame: any, face: any): boolean;
31
+ getFaceDetections(videoRef: any): Promise<faceapi.WithFaceExpressions<faceapi.WithFaceLandmarks<{
32
+ detection: faceapi.FaceDetection;
33
+ }, faceapi.FaceLandmarks68>>[]>;
34
+ getCanvas(videoRef: any): HTMLCanvasElement;
35
+ getResizedAndDetection(canvas: any, detections: any, ctx: any, videoWidth: number, videoHeight: number): void;
36
+ getFaceSnapshot(inputImage: any, box: any): Promise<string | null>;
37
+ initModels(): Promise<void>;
51
38
  }
52
- export default function usePhotoService(): PhotoService
53
- export {}
39
+ export default function usePhotoService(): PhotoService;
40
+ export {};
@@ -0,0 +1,31 @@
1
+ import { Api_User, Api_User_Team_Search } from '@/api/types/Api_User';
2
+ import { Api_Tasks_Position_Dto } from '@/api/types/Api_Tasks';
3
+ export type Api_Brigade_Master = {
4
+ id: string;
5
+ full_name: string;
6
+ email: string;
7
+ };
8
+ export type Api_Brigade_Position = {
9
+ id: string;
10
+ user: Pick<Api_User, 'id' | 'first_name' | 'last_name' | 'patronymic' | 'email' | 'full_name'> | null;
11
+ position: Api_Tasks_Position_Dto;
12
+ };
13
+ export type Api_Brigade = {
14
+ id: string;
15
+ name: string;
16
+ task_master: Api_Brigade_Master;
17
+ teams: Api_User_Team_Search[];
18
+ positions: Api_Brigade_Position[];
19
+ };
20
+ export type Api_Brigade_Create = Pick<Api_Brigade, 'name' | 'teams'> & {
21
+ positions?: Api_Brigade_Position[];
22
+ task_master_user_id: string;
23
+ };
24
+ export type Api_Brigade_Search = {
25
+ id: string;
26
+ name: string;
27
+ created_at: string;
28
+ updated_at: string;
29
+ task_master: Api_Brigade_Master;
30
+ teams: Api_User_Team_Search[];
31
+ };
@@ -155,7 +155,6 @@ export type Api_Tasks_Task_Dto = {
155
155
  instruments?: any[];
156
156
  warehouse: any[];
157
157
  files: any[];
158
- work_zone: string;
159
158
  planned_start: null | string;
160
159
  planned_end: null | string;
161
160
  fact_start_date: string;
@@ -166,6 +165,9 @@ export type Api_Tasks_Task_Dto = {
166
165
  isPause: boolean;
167
166
  defect: string | null;
168
167
  expired: boolean;
168
+ is_critical_task: boolean;
169
+ usage_users: boolean;
170
+ usage_warehouses: boolean;
169
171
  subtasks: Api_Tasks_Task_Dto[];
170
172
  status: Api_Tasks_Status_Dto;
171
173
  project: Api_Tasks_Project_Dto;
@@ -39,9 +39,10 @@ import useControlsService from './api/services/ControlsService';
39
39
  import useSearchService from './api/services/SearchService';
40
40
  import useCommentsService from './api/services/CommentsService';
41
41
  import useEquipmentService from './api/services/EquipmentService';
42
+ import useBrigadesService from '@/api/services/BrigadesService';
42
43
  import useFaceApiHelper from './utils/faceApiHelper';
43
44
  export { AppButton, AppCheckbox, AppDatepicker, AppDatePicker, AppInput, AppInputNew, AppInputSearch, AppLayout, AppLayoutHeader, AppLayoutPage, AppLoader, AppSelect, AppSheet, AppSheetNew, AppSidebar, AppToggle, AppWrapper, AppConfirmDialog, AppDropdown, AppTablePagination, AppTableSearch, AppTableModal, AppTable, AppTableLayout, AppModalSelect, };
44
- export { ApiService, useAuthService, useGanttService, useMetricsService, useProjectsService, useRepairsService, useTasksService, useFileService, useControlsService, useVideoService, useUserService, useInstrumentsService, useSearchService, useCommentsService, useFaceApiHelper, useEquipmentService, };
45
+ export { ApiService, useAuthService, useGanttService, useMetricsService, useProjectsService, useRepairsService, useTasksService, useFileService, useControlsService, useVideoService, useUserService, useInstrumentsService, useSearchService, useCommentsService, useFaceApiHelper, useEquipmentService, useBrigadesService, };
45
46
  export { useBaseTable } from './common/app-table/controllers/useBaseTable';
46
47
  export { useTableModel } from './common/app-table/controllers/useTableModel';
47
48
  export { useColumnSelector } from './common/app-table/controllers/useColumnSelector';
@@ -61,3 +62,4 @@ export * from './api/types/Api_Comment';
61
62
  export * from './api/types/Api_Files';
62
63
  export * from './api/types/Api_Video';
63
64
  export * from './api/types/Api_Equipment';
65
+ export * from './api/types/Api_Brigades';
package/package.json CHANGED
@@ -1,64 +1,64 @@
1
- {
2
- "name": "shared-ritm",
3
- "version": "1.2.103",
4
- "private": false,
5
- "files": [
6
- "dist",
7
- "src"
8
- ],
9
- "main": "dist/shared-ritm.umd.js",
10
- "type": "module",
11
- "module": "./dist/shared-ritm.es.js",
12
- "types": "./dist/types/index.d.ts",
13
- "exports": {
14
- ".": {
15
- "import": "./dist/shared-ritm.es.js",
16
- "require": "./dist/shared-ritm.umd.js",
17
- "default": "./dist/shared-ritm.es.js",
18
- "types": "./dist/types/index.d.ts"
19
- },
20
- "./style": "./dist/index.css"
21
- },
22
- "scripts": {
23
- "dev": "vite",
24
- "build": "vite build && tsc --emitDeclarationOnly",
25
- "typecheck": "vue-tsc --noEmit",
26
- "lint": "eslint --fix",
27
- "format": "prettier -w -u ."
28
- },
29
- "dependencies": {
30
- "@quasar/extras": "^1.16.17",
31
- "@vueuse/core": "^10.1.2",
32
- "face-api.js": "^0.22.2",
33
- "axios": "^1.7.7",
34
- "vue": "^3.5.12",
35
- "vue-router": "^4.0.3"
36
- },
37
- "peerDependencies": {
38
- "quasar": "^2.18.1"
39
- },
40
- "devDependencies": {
41
- "@quasar/vite-plugin": "^1.9.0",
42
- "@rollup/pluginutils": "^5.1.3",
43
- "@types/node": "^22.7.9",
44
- "@typescript-eslint/eslint-plugin": "^4.25.0",
45
- "@typescript-eslint/parser": "^4.25.0",
46
- "@vitejs/plugin-vue": "^5.1.4",
47
- "@vue/compiler-sfc": "^3.0.5",
48
- "@vue/eslint-config-prettier": "^6.0.0",
49
- "@vue/eslint-config-typescript": "^7.0.0",
50
- "eslint": "^7.27.0",
51
- "eslint-plugin-prettier": "^3.4.0",
52
- "eslint-plugin-vue": "^7.10.0",
53
- "install": "^0.13.0",
54
- "npm": "^11.4.0",
55
- "prettier": "^2.3.0",
56
- "quasar": "^2.18.1",
57
- "rollup-plugin-visualizer": "^5.14.0",
58
- "sass": "^1.80.4",
59
- "typescript": "^5.6.3",
60
- "vite": "^5.4.9",
61
- "vite-plugin-css-modules": "^0.0.1",
62
- "vue-tsc": "^2.1.6"
63
- }
64
- }
1
+ {
2
+ "name": "shared-ritm",
3
+ "version": "1.2.105",
4
+ "private": false,
5
+ "files": [
6
+ "dist",
7
+ "src"
8
+ ],
9
+ "main": "dist/shared-ritm.umd.js",
10
+ "type": "module",
11
+ "module": "./dist/shared-ritm.es.js",
12
+ "types": "./dist/types/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "import": "./dist/shared-ritm.es.js",
16
+ "require": "./dist/shared-ritm.umd.js",
17
+ "default": "./dist/shared-ritm.es.js",
18
+ "types": "./dist/types/index.d.ts"
19
+ },
20
+ "./style": "./dist/index.css"
21
+ },
22
+ "scripts": {
23
+ "dev": "vite",
24
+ "build": "vite build && tsc --emitDeclarationOnly",
25
+ "typecheck": "vue-tsc --noEmit",
26
+ "lint": "eslint --fix",
27
+ "format": "prettier -w -u ."
28
+ },
29
+ "dependencies": {
30
+ "@quasar/extras": "^1.16.17",
31
+ "@vueuse/core": "^10.1.2",
32
+ "face-api.js": "^0.22.2",
33
+ "axios": "^1.7.7",
34
+ "vue": "^3.5.12",
35
+ "vue-router": "^4.0.3"
36
+ },
37
+ "peerDependencies": {
38
+ "quasar": "^2.18.1"
39
+ },
40
+ "devDependencies": {
41
+ "@quasar/vite-plugin": "^1.9.0",
42
+ "@rollup/pluginutils": "^5.1.3",
43
+ "@types/node": "^22.7.9",
44
+ "@typescript-eslint/eslint-plugin": "^4.25.0",
45
+ "@typescript-eslint/parser": "^4.25.0",
46
+ "@vitejs/plugin-vue": "^5.1.4",
47
+ "@vue/compiler-sfc": "^3.0.5",
48
+ "@vue/eslint-config-prettier": "^6.0.0",
49
+ "@vue/eslint-config-typescript": "^7.0.0",
50
+ "eslint": "^7.27.0",
51
+ "eslint-plugin-prettier": "^3.4.0",
52
+ "eslint-plugin-vue": "^7.10.0",
53
+ "install": "^0.13.0",
54
+ "npm": "^11.4.0",
55
+ "prettier": "^2.3.0",
56
+ "quasar": "^2.18.1",
57
+ "rollup-plugin-visualizer": "^5.14.0",
58
+ "sass": "^1.80.4",
59
+ "typescript": "^5.6.3",
60
+ "vite": "^5.4.9",
61
+ "vite-plugin-css-modules": "^0.0.1",
62
+ "vue-tsc": "^2.1.6"
63
+ }
64
+ }
@@ -0,0 +1,32 @@
1
+ import ApiService from '../settings/ApiService'
2
+ import { Api_Brigade, Api_Brigade_Create, Api_Brigade_Search } from '../types/Api_Brigades'
3
+ import { ResponseApi } from '../types/Api_Service'
4
+
5
+ class BrigadesService extends ApiService {
6
+ public fetchBrigades(params: any): Promise<ResponseApi<Api_Brigade_Search[]>> {
7
+ return this.get<ResponseApi<Api_Brigade_Search[]>>('/search/brigades', { params })
8
+ }
9
+
10
+ public editBrigade({ id, model }: { id: string; model: Partial<Api_Brigade_Create> }): Promise<Api_Brigade> {
11
+ return this.put<Partial<Api_Brigade_Create>, Api_Brigade>(`/brigades/${id}`, model)
12
+ }
13
+
14
+ public getBrigade(id: string): Promise<Api_Brigade> {
15
+ return this.get<Api_Brigade>(`/brigades/${id}`)
16
+ }
17
+
18
+ public createBrigade(model: Api_Brigade_Create): Promise<Api_Brigade> {
19
+ return this.post<Api_Brigade_Create, Api_Brigade>('/brigades', model)
20
+ }
21
+
22
+ public deleteBrigade(id: string): Promise<{ data: boolean; status: number }> {
23
+ return this.delete(`/brigades/${id}`)
24
+ }
25
+ }
26
+
27
+ let api: BrigadesService
28
+
29
+ export default function useBrigadesService() {
30
+ if (!api) api = new BrigadesService()
31
+ return api
32
+ }
@@ -1,29 +1,29 @@
1
- import ApiService from '../settings/ApiService'
2
- import { ResponseApi } from '../types/Api_Service'
3
- import { Api_Equipment_Full_Dto } from '@/api/types/Api_Repairs'
4
- import { Api_Equipment_Create } from '@/api/types/Api_Equipment'
5
-
6
- class EquipmentService extends ApiService {
7
- public fetchEquipment(params: any): Promise<ResponseApi<Api_Equipment_Full_Dto[]>> {
8
- return this.get<ResponseApi<Api_Equipment_Full_Dto[]>>('repairs/equipment/list', { params })
9
- }
10
-
11
- public createEquipment(body: Api_Equipment_Create): Promise<Api_Equipment_Full_Dto> {
12
- return this.post<Api_Equipment_Create, Api_Equipment_Full_Dto>('repairs/equipment', body)
13
- }
14
-
15
- public editEquipment(id: string, body: Partial<Api_Equipment_Create>): Promise<Api_Equipment_Full_Dto> {
16
- return this.put<Partial<Api_Equipment_Create>, Api_Equipment_Full_Dto>(`repairs/equipment/${id}`, body)
17
- }
18
-
19
- public deleteEquipment(id: string): Promise<{ data: boolean; status: number }> {
20
- return this.delete(`repairs/equipment/${id}`)
21
- }
22
- }
23
-
24
- let api: EquipmentService
25
-
26
- export default function useEquipmentService() {
27
- if (!api) api = new EquipmentService()
28
- return api
29
- }
1
+ import ApiService from '../settings/ApiService'
2
+ import { ResponseApi } from '../types/Api_Service'
3
+ import { Api_Equipment_Full_Dto } from '@/api/types/Api_Repairs'
4
+ import { Api_Equipment_Create } from '@/api/types/Api_Equipment'
5
+
6
+ class EquipmentService extends ApiService {
7
+ public fetchEquipment(params: any): Promise<ResponseApi<Api_Equipment_Full_Dto[]>> {
8
+ return this.get<ResponseApi<Api_Equipment_Full_Dto[]>>('repairs/equipment/list', { params })
9
+ }
10
+
11
+ public createEquipment(body: Api_Equipment_Create): Promise<Api_Equipment_Full_Dto> {
12
+ return this.post<Api_Equipment_Create, Api_Equipment_Full_Dto>('repairs/equipment', body)
13
+ }
14
+
15
+ public editEquipment(id: string, body: Partial<Api_Equipment_Create>): Promise<Api_Equipment_Full_Dto> {
16
+ return this.put<Partial<Api_Equipment_Create>, Api_Equipment_Full_Dto>(`repairs/equipment/${id}`, body)
17
+ }
18
+
19
+ public deleteEquipment(id: string): Promise<{ data: boolean; status: number }> {
20
+ return this.delete(`repairs/equipment/${id}`)
21
+ }
22
+ }
23
+
24
+ let api: EquipmentService
25
+
26
+ export default function useEquipmentService() {
27
+ if (!api) api = new EquipmentService()
28
+ return api
29
+ }
@@ -1,22 +1,22 @@
1
- import ApiService from '../settings/ApiService'
2
- import { Api_instruments_HistoryResponse } from '../types/Api_Instruments'
3
-
4
- class InstrumentsService extends ApiService {
5
- public async fetchUserInstrumentsHistory(id: string, page?: number): Promise<Api_instruments_HistoryResponse> {
6
- const params = {
7
- status: 'issued',
8
- page,
9
- desc: 'desc',
10
- column: 'issued_in',
11
- }
12
-
13
- return await this.get(`users/${id}/instruments`, { params })
14
- }
15
- }
16
-
17
- let api: InstrumentsService
18
-
19
- export default function useInstrumentsService() {
20
- if (!api) api = new InstrumentsService()
21
- return api
22
- }
1
+ import ApiService from '../settings/ApiService'
2
+ import { Api_instruments_HistoryResponse } from '../types/Api_Instruments'
3
+
4
+ class InstrumentsService extends ApiService {
5
+ public async fetchUserInstrumentsHistory(id: string, page?: number): Promise<Api_instruments_HistoryResponse> {
6
+ const params = {
7
+ status: 'issued',
8
+ page,
9
+ desc: 'desc',
10
+ column: 'issued_in',
11
+ }
12
+
13
+ return await this.get(`users/${id}/instruments`, { params })
14
+ }
15
+ }
16
+
17
+ let api: InstrumentsService
18
+
19
+ export default function useInstrumentsService() {
20
+ if (!api) api = new InstrumentsService()
21
+ return api
22
+ }
@@ -1,101 +1,101 @@
1
- import ApiService from '../settings/ApiService'
2
- import {
3
- Api_User,
4
- Api_User_Create,
5
- Api_User_Delete_Body,
6
- Api_User_Delete_Photos_Body,
7
- Api_User_Position,
8
- Api_User_Role,
9
- Api_User_Team,
10
- Api_User_Team_Search,
11
- } from '../types/Api_User'
12
- import { ResponseApi } from '../types/Api_Service'
13
-
14
- class UserService extends ApiService {
15
- public async editUser({ id, model }: { id: string; model: any }): Promise<Api_User> {
16
- return await this.put<Partial<Api_User>, Api_User>(`/admin/users/${id}`, model)
17
- }
18
-
19
- public async getUser(id: string): Promise<Api_User> {
20
- return await this.get<Api_User>(`/admin/users/${id}`)
21
- }
22
-
23
- public async createUser(model: Api_User_Create): Promise<Api_User> {
24
- return await this.post<Api_User_Create, Api_User>('/admin/users', model)
25
- }
26
-
27
- public async deleteUser({
28
- user_id,
29
- archive_reason,
30
- }: Api_User_Delete_Body): Promise<{ data: boolean; status: number }> {
31
- return await this.post(`/users/archive_user`, { user_id, archive_reason })
32
- }
33
-
34
- public async deleteUserPhotos({
35
- user_id,
36
- photos,
37
- }: Api_User_Delete_Photos_Body): Promise<{ data: boolean; status: number }> {
38
- return await this.post(`/users/photos/delete`, { user_id, photos })
39
- }
40
-
41
- public async restoreUser(user_id: string): Promise<{ data: boolean; status: number }> {
42
- return await this.post(`/users/restore_user`, { user_id })
43
- }
44
-
45
- public async getRoles(params?: { per_page?: number }): Promise<ResponseApi<Api_User_Role[]>> {
46
- return await this.get<ResponseApi<Api_User_Role[]>>('/search/roles', { params })
47
- }
48
-
49
- public async getPositions(params?: { per_page?: number }): Promise<ResponseApi<Api_User_Position[]>> {
50
- return await this.get<ResponseApi<Api_User_Position[]>>('/search/positions', { params })
51
- }
52
-
53
- public async createPosition(body: Partial<Api_User_Position>): Promise<ResponseApi<Api_User_Position>> {
54
- return await this.post<Partial<Api_User_Position>, ResponseApi<Api_User_Position>>('/admin/positions', body)
55
- }
56
-
57
- public async editPosition(id: string, body: Partial<Api_User_Position>): Promise<ResponseApi<Api_User_Position>> {
58
- return await this.put<Partial<Api_User_Position>, ResponseApi<Api_User_Position>>(`/admin/positions/${id}`, body)
59
- }
60
-
61
- public async deletePosition(id: string): Promise<{ data: boolean; status: number }> {
62
- return await this.delete(`/admin/positions/${id}`)
63
- }
64
-
65
- public async getTeams(params?: { per_page?: number }): Promise<ResponseApi<Api_User_Team_Search[]>> {
66
- return await this.get<ResponseApi<Api_User_Team_Search[]>>('/search/teams', { params })
67
- }
68
-
69
- public async createTeam(body: Partial<Api_User_Team_Search>): Promise<ResponseApi<Api_User_Team>> {
70
- return await this.post<Partial<Api_User_Team_Search>, ResponseApi<Api_User_Team>>('/teams', body)
71
- }
72
-
73
- public async editTeam(id: string, body: Partial<Api_User_Team_Search>): Promise<{ data: boolean; status: number }> {
74
- return await this.patch<Partial<Api_User_Team_Search>, { data: boolean; status: number }>(`/teams/${id}`, body)
75
- }
76
-
77
- public async deleteTeam(id: string): Promise<{ data: boolean; status: number }> {
78
- return await this.delete(`/teams/${id}`)
79
- }
80
-
81
- public async checkUserVectors(id: string): Promise<{ count: number }> {
82
- return await this.get(`/user/get-vectors/${id}`)
83
- }
84
-
85
- public async addUserVectors(formData: FormData): Promise<{ response: string }> {
86
- return await this.post(`/user/add-vector`, formData, {
87
- headers: { 'Content-Type': 'multipart/form-data' },
88
- })
89
- }
90
-
91
- public async removeUserVectors(id: string): Promise<unknown> {
92
- return await this.delete(`/user/delete-vectors/${id}`)
93
- }
94
- }
95
-
96
- let api: UserService
97
-
98
- export default function useUserService() {
99
- if (!api) api = new UserService()
100
- return api
101
- }
1
+ import ApiService from '../settings/ApiService'
2
+ import {
3
+ Api_User,
4
+ Api_User_Create,
5
+ Api_User_Delete_Body,
6
+ Api_User_Delete_Photos_Body,
7
+ Api_User_Position,
8
+ Api_User_Role,
9
+ Api_User_Team,
10
+ Api_User_Team_Search,
11
+ } from '../types/Api_User'
12
+ import { ResponseApi } from '../types/Api_Service'
13
+
14
+ class UserService extends ApiService {
15
+ public async editUser({ id, model }: { id: string; model: any }): Promise<Api_User> {
16
+ return await this.put<Partial<Api_User>, Api_User>(`/admin/users/${id}`, model)
17
+ }
18
+
19
+ public async getUser(id: string): Promise<Api_User> {
20
+ return await this.get<Api_User>(`/admin/users/${id}`)
21
+ }
22
+
23
+ public async createUser(model: Api_User_Create): Promise<Api_User> {
24
+ return await this.post<Api_User_Create, Api_User>('/admin/users', model)
25
+ }
26
+
27
+ public async deleteUser({
28
+ user_id,
29
+ archive_reason,
30
+ }: Api_User_Delete_Body): Promise<{ data: boolean; status: number }> {
31
+ return await this.post(`/users/archive_user`, { user_id, archive_reason })
32
+ }
33
+
34
+ public async deleteUserPhotos({
35
+ user_id,
36
+ photos,
37
+ }: Api_User_Delete_Photos_Body): Promise<{ data: boolean; status: number }> {
38
+ return await this.post(`/users/photos/delete`, { user_id, photos })
39
+ }
40
+
41
+ public async restoreUser(user_id: string): Promise<{ data: boolean; status: number }> {
42
+ return await this.post(`/users/restore_user`, { user_id })
43
+ }
44
+
45
+ public async getRoles(params?: { per_page?: number }): Promise<ResponseApi<Api_User_Role[]>> {
46
+ return await this.get<ResponseApi<Api_User_Role[]>>('/search/roles', { params })
47
+ }
48
+
49
+ public async getPositions(params?: { per_page?: number }): Promise<ResponseApi<Api_User_Position[]>> {
50
+ return await this.get<ResponseApi<Api_User_Position[]>>('/search/positions', { params })
51
+ }
52
+
53
+ public async createPosition(body: Partial<Api_User_Position>): Promise<ResponseApi<Api_User_Position>> {
54
+ return await this.post<Partial<Api_User_Position>, ResponseApi<Api_User_Position>>('/admin/positions', body)
55
+ }
56
+
57
+ public async editPosition(id: string, body: Partial<Api_User_Position>): Promise<ResponseApi<Api_User_Position>> {
58
+ return await this.put<Partial<Api_User_Position>, ResponseApi<Api_User_Position>>(`/admin/positions/${id}`, body)
59
+ }
60
+
61
+ public async deletePosition(id: string): Promise<{ data: boolean; status: number }> {
62
+ return await this.delete(`/admin/positions/${id}`)
63
+ }
64
+
65
+ public async getTeams(params?: { per_page?: number }): Promise<ResponseApi<Api_User_Team_Search[]>> {
66
+ return await this.get<ResponseApi<Api_User_Team_Search[]>>('/search/teams', { params })
67
+ }
68
+
69
+ public async createTeam(body: Partial<Api_User_Team_Search>): Promise<ResponseApi<Api_User_Team>> {
70
+ return await this.post<Partial<Api_User_Team_Search>, ResponseApi<Api_User_Team>>('/teams', body)
71
+ }
72
+
73
+ public async editTeam(id: string, body: Partial<Api_User_Team_Search>): Promise<{ data: boolean; status: number }> {
74
+ return await this.patch<Partial<Api_User_Team_Search>, { data: boolean; status: number }>(`/teams/${id}`, body)
75
+ }
76
+
77
+ public async deleteTeam(id: string): Promise<{ data: boolean; status: number }> {
78
+ return await this.delete(`/teams/${id}`)
79
+ }
80
+
81
+ public async checkUserVectors(id: string): Promise<{ count: number }> {
82
+ return await this.get(`/user/get-vectors/${id}`)
83
+ }
84
+
85
+ public async addUserVectors(formData: FormData): Promise<{ response: string }> {
86
+ return await this.post(`/user/add-vector`, formData, {
87
+ headers: { 'Content-Type': 'multipart/form-data' },
88
+ })
89
+ }
90
+
91
+ public async removeUserVectors(id: string): Promise<unknown> {
92
+ return await this.delete(`/user/delete-vectors/${id}`)
93
+ }
94
+ }
95
+
96
+ let api: UserService
97
+
98
+ export default function useUserService() {
99
+ if (!api) api = new UserService()
100
+ return api
101
+ }