@tagsamurai/fats-api-services 2.0.0-alpha.11 → 2.0.0-alpha.12

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.
@@ -99,48 +99,48 @@ const getAssetsFile = async (file, type = "excel") => {
99
99
  );
100
100
  return response;
101
101
  };
102
- const API$2 = createAxiosInstance({
102
+ const API$3 = createAxiosInstance({
103
103
  prefix: "/fam/settings-attribute/v2"
104
104
  });
105
105
  const BrandService = {
106
106
  getBrandList: (params) => {
107
- return API$2.get("/brands", { params });
107
+ return API$3.get("/brands", { params });
108
108
  },
109
109
  createBrand: (body) => {
110
- return API$2.post("/brands", body);
110
+ return API$3.post("/brands", body);
111
111
  },
112
112
  deleteBrand: (body) => {
113
- return API$2.delete("/brands", { data: body });
113
+ return API$3.delete("/brands", { data: body });
114
114
  },
115
115
  getBrandOptions: (params) => {
116
- return API$2.get("/brands/options", { params });
116
+ return API$3.get("/brands/options", { params });
117
117
  },
118
118
  getBrandDropdown: (params) => {
119
- return API$2.get("/brands/dropdown", { params });
119
+ return API$3.get("/brands/dropdown", { params });
120
120
  },
121
121
  getBrandDetail: (id) => {
122
- return API$2.get(`/brands/${id}`);
122
+ return API$3.get(`/brands/${id}`);
123
123
  },
124
124
  editBrand: (id, body) => {
125
- return API$2.put(`/brands/${id}`, body);
125
+ return API$3.put(`/brands/${id}`, body);
126
126
  },
127
127
  getBrandListCategory: (id, params) => {
128
- return API$2.get(`/brands/${id}/list-category`, { params });
128
+ return API$3.get(`/brands/${id}/list-category`, { params });
129
129
  },
130
130
  getBrandListCategoryOptions: (id, params) => {
131
- return API$2.get(`/brands/${id}/list-category/options`, { params });
131
+ return API$3.get(`/brands/${id}/list-category/options`, { params });
132
132
  },
133
133
  getBrandListAsset: (id, params) => {
134
- return API$2.get(`/brands/${id}/list-asset`, { params });
134
+ return API$3.get(`/brands/${id}/list-asset`, { params });
135
135
  },
136
136
  getBrandListAssetOptions: (id, params) => {
137
- return API$2.get(`/brands/${id}/list-asset/options`, { params });
137
+ return API$3.get(`/brands/${id}/list-asset/options`, { params });
138
138
  },
139
139
  assignCategory: (body) => {
140
- return API$2.put("/brands/assign-category", body);
140
+ return API$3.put("/brands/assign-category", body);
141
141
  },
142
142
  unassignCategory: (body) => {
143
- return API$2.put("/brands/unassign-category", body);
143
+ return API$3.put("/brands/unassign-category", body);
144
144
  }
145
145
  };
146
146
  const isValidJSON = (value) => {
@@ -165,26 +165,26 @@ const buildBodyParams = (params) => {
165
165
  });
166
166
  return result;
167
167
  };
168
- const API$1 = createAxiosInstance({
168
+ const API$2 = createAxiosInstance({
169
169
  prefix: "/v2/analytics-reporting"
170
170
  });
171
171
  const ChangelogServices = {
172
172
  getChangelogList: (params) => {
173
173
  const body = buildBodyParams(params);
174
- return API$1.post("/change-log/list", body);
174
+ return API$2.post("/change-log/list", body);
175
175
  },
176
176
  getChangelogOptions: (body) => {
177
- return API$1.post("/change-log/options", body);
177
+ return API$2.post("/change-log/options", body);
178
178
  },
179
179
  getSessionLogList: (params) => {
180
180
  const body = buildBodyParams(params);
181
- return API$1.post("/session-log/list", body);
181
+ return API$2.post("/session-log/list", body);
182
182
  },
183
183
  getSessionLogOptions: (body) => {
184
- return API$1.post("/session-log/options", body);
184
+ return API$2.post("/session-log/options", body);
185
185
  }
186
186
  };
187
- const API = createAxiosInstance({
187
+ const API$1 = createAxiosInstance({
188
188
  env: "APP_GLOBAL_SETTINGS_API",
189
189
  prefix: "/v2/iam/auth"
190
190
  });
@@ -201,13 +201,13 @@ const onRejected = (error) => {
201
201
  const AuthServices = {
202
202
  login: (form) => {
203
203
  const body = { ...form, isMobile: false };
204
- return API.post("/login", body);
204
+ return API$1.post("/login", body);
205
205
  },
206
206
  reLogin: (body) => {
207
- API.interceptors.response.use((response) => {
207
+ API$1.interceptors.response.use((response) => {
208
208
  return response;
209
209
  }, onRejected);
210
- return API.post("/login", {
210
+ return API$1.post("/login", {
211
211
  ...body,
212
212
  ignoreAccess: true
213
213
  // Allow users without access to Global Settings to hit relogin
@@ -215,32 +215,44 @@ const AuthServices = {
215
215
  },
216
216
  requestOTP: (email) => {
217
217
  const body = { email };
218
- return API.post("/request-otp", body);
218
+ return API$1.post("/request-otp", body);
219
219
  },
220
220
  requestResetPassLink: (email) => {
221
221
  const body = { email };
222
- return API.post("/request-reset-link", body);
222
+ return API$1.post("/request-reset-link", body);
223
223
  },
224
224
  setPassword: (body) => {
225
- return API.post("/set-password", body);
225
+ return API$1.post("/set-password", body);
226
226
  },
227
227
  verifyToken: (token) => {
228
- return API.get(`/verify-token/${token}`);
228
+ return API$1.get(`/verify-token/${token}`);
229
229
  },
230
230
  confirmEmailChange: (token) => {
231
231
  const body = { token };
232
- return API.post("/confirm-email-change", body);
232
+ return API$1.post("/confirm-email-change", body);
233
233
  },
234
234
  cancelEmailChange: (_id) => {
235
- return API.delete(`cancel-email-change/${_id}`);
235
+ return API$1.delete(`cancel-email-change/${_id}`);
236
236
  },
237
237
  postLogout: () => {
238
- return API.post("/logout");
238
+ return API$1.post("/logout");
239
+ }
240
+ };
241
+ const API = createAxiosInstance({
242
+ prefix: "/v2/file-manager"
243
+ });
244
+ const FileManagerService = {
245
+ getFileList: (body) => {
246
+ return API.post("/list", body);
247
+ },
248
+ getFileOptions: (body) => {
249
+ return API.post("/options", body);
239
250
  }
240
251
  };
241
252
  export {
242
253
  BrandService,
243
254
  ChangelogServices,
255
+ FileManagerService,
244
256
  AuthServices as GlobalAuthServices,
245
257
  buildFileURL,
246
258
  downloadFile,
package/main.d.ts CHANGED
@@ -3,3 +3,4 @@ export { getAssetsFile, getBaseURL } from './src/utils';
3
3
  export { default as BrandService } from './src/services/brand.service';
4
4
  export { default as ChangelogServices } from './src/services/changelog.service';
5
5
  export { default as GlobalAuthServices } from './src/services/globalAuth.service';
6
+ export { default as FileManagerService } from './src/services/fileManager.service';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tagsamurai/fats-api-services",
3
- "version": "2.0.0-alpha.11",
3
+ "version": "2.0.0-alpha.12",
4
4
  "type": "module",
5
5
  "author": "Tagsamurai",
6
6
  "description": "Fixed Asset Tagsamurai API Services",
@@ -0,0 +1,29 @@
1
+ export type LoginBody = {
2
+ email: string;
3
+ password?: string | null;
4
+ overrideSession?: boolean;
5
+ isMobile?: boolean;
6
+ otp?: string | null;
7
+ captcha?: string;
8
+ agreePolicy?: boolean;
9
+ };
10
+ export type RequestOtpBody = {
11
+ email: string;
12
+ };
13
+ export type RequestResetLinkBody = {
14
+ email: string;
15
+ };
16
+ export type SetPasswordBody = {
17
+ type: string;
18
+ token: string;
19
+ password?: string;
20
+ };
21
+ export type ConfirmEmailChangeBody = {
22
+ token: string;
23
+ };
24
+ export type ModuleLoginBody = {
25
+ module: string;
26
+ };
27
+ export type ModuleLogoutBody = {
28
+ module: string;
29
+ };
@@ -0,0 +1,3 @@
1
+ export type LogoutSessionBody = {
2
+ sessionId: string;
3
+ };
@@ -0,0 +1,28 @@
1
+ import { TableParams } from './dataTable.dto';
2
+ export type CreateCustomFieldBody = {
3
+ isRequired: boolean;
4
+ name: string;
5
+ dataType: string;
6
+ optionValue?: string[];
7
+ };
8
+ export type EditCustomFieldBody = {
9
+ isRequired: boolean;
10
+ name: string;
11
+ dataType: string;
12
+ optionValue?: string[];
13
+ };
14
+ export type SetActiveCustomFieldBody = {
15
+ isActive: boolean;
16
+ ids: string[];
17
+ };
18
+ export type DeleteCustomFieldBody = {
19
+ ids: string[];
20
+ };
21
+ export type CustomFieldOptionsQueryParams = {
22
+ dataTypeOptions?: boolean;
23
+ };
24
+ export type GetCustomFieldListQueryParams = TableParams & {
25
+ isActive?: boolean[] | null;
26
+ dataType?: string[] | null;
27
+ isRequired?: string[] | null;
28
+ };
@@ -0,0 +1,9 @@
1
+ export type CreateDivisionBody = {
2
+ name: string;
3
+ };
4
+ export type EditDivisionBody = {
5
+ name: string;
6
+ };
7
+ export type DeleteDivisionBody = {
8
+ ids: string[];
9
+ };
@@ -0,0 +1,9 @@
1
+ export type CreatePositionBody = {
2
+ name: string;
3
+ };
4
+ export type EditPositionBody = {
5
+ name: string;
6
+ };
7
+ export type DeletePositionBody = {
8
+ ids: string[];
9
+ };
@@ -0,0 +1,47 @@
1
+ import { TableParams } from './dataTable.dto';
2
+ export type CreateUserBody = {
3
+ profilePicture?: File | string;
4
+ firstName: string;
5
+ lastName: string;
6
+ positionId?: string;
7
+ divisionId: string;
8
+ employeeId?: string;
9
+ email: string;
10
+ access: string;
11
+ expiryDate?: string;
12
+ tag?: string;
13
+ };
14
+ export type EditUserBody = CreateUserBody;
15
+ export type UserOptionsQueryParams = {
16
+ isActiveOptions?: boolean;
17
+ positionOptions?: boolean;
18
+ divisionOptions?: boolean;
19
+ modifiedByOptions?: boolean;
20
+ };
21
+ export type EditUserFcmTokenBody = {
22
+ data: {
23
+ userId: string;
24
+ token: string;
25
+ }[];
26
+ };
27
+ export type ResendActivationEmailBody = {
28
+ ids: string[];
29
+ };
30
+ export type ChangePasswordBody = {
31
+ oldPassword?: string;
32
+ newPassword?: string;
33
+ };
34
+ export type DeleteUserBody = {
35
+ ids: string[];
36
+ };
37
+ export type BulkSetActiveUserBody = {
38
+ isActive: boolean;
39
+ ids: string[];
40
+ };
41
+ export type GetUserListQueryParams = TableParams & {
42
+ isActive?: boolean[] | null;
43
+ position?: string[] | null;
44
+ division?: string[] | null;
45
+ modifiedBy?: string[] | null;
46
+ updatedAt?: string[] | null;
47
+ };
@@ -0,0 +1,20 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { ConfirmEmailChangeBody, LoginBody, ModuleLoginBody, ModuleLogoutBody, RequestOtpBody, RequestResetLinkBody, SetPasswordBody } from '../dto/authService.dto';
3
+ import { LoginResponse, ModuleLoginResponse, VerifyTokenResponse } from '../types/authService.type';
4
+ declare const AuthService: {
5
+ login: (body: LoginBody) => Promise<AxiosResponse<LoginResponse>>;
6
+ logout: () => Promise<AxiosResponse<{
7
+ message: string;
8
+ }>>;
9
+ verifyToken: (token: string) => Promise<AxiosResponse<VerifyTokenResponse>>;
10
+ requestOtp: (body: RequestOtpBody) => Promise<AxiosResponse<boolean>>;
11
+ requestResetLink: (body: RequestResetLinkBody) => Promise<AxiosResponse<boolean>>;
12
+ setPassword: (body: SetPasswordBody) => Promise<AxiosResponse<string>>;
13
+ confirmEmailChange: (body: ConfirmEmailChangeBody) => Promise<AxiosResponse<string>>;
14
+ cancelEmailChange: (id: string) => Promise<AxiosResponse<string>>;
15
+ loginModule: (body: ModuleLoginBody) => Promise<AxiosResponse<ModuleLoginResponse>>;
16
+ logoutModule: (body: ModuleLogoutBody) => Promise<AxiosResponse<{
17
+ message: string;
18
+ }>>;
19
+ };
20
+ export default AuthService;
@@ -0,0 +1,11 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { LogoutSessionBody } from '../dto/concurrentUserService.dto';
3
+ import { TableParams } from '../dto/dataTable.dto';
4
+ import { ConcurrentUserListResponse } from '../types/concurrentUserService.type';
5
+ declare const ConcurrentUserService: {
6
+ getConcurrentUsers: (moduleHeader: string, params?: TableParams) => Promise<AxiosResponse<ConcurrentUserListResponse>>;
7
+ logoutSession: (moduleHeader: string, body: LogoutSessionBody) => Promise<AxiosResponse<{
8
+ message: string;
9
+ }>>;
10
+ };
11
+ export default ConcurrentUserService;
@@ -0,0 +1,13 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { CreateCustomFieldBody, CustomFieldOptionsQueryParams, DeleteCustomFieldBody, EditCustomFieldBody, GetCustomFieldListQueryParams, SetActiveCustomFieldBody } from '../dto/customFieldService.dto';
3
+ import { CustomFieldListResponse, CustomFieldOptionsResponse } from '../types/customFieldService.type';
4
+ import { FetchDetailResponse, FetchListResponse } from '../types/fetchResponse.type';
5
+ declare const CustomFieldService: {
6
+ getList: (params?: GetCustomFieldListQueryParams) => Promise<AxiosResponse<FetchListResponse<CustomFieldListResponse[0]>>>;
7
+ getOptions: (body: CustomFieldOptionsQueryParams) => Promise<AxiosResponse<FetchDetailResponse<CustomFieldOptionsResponse>>>;
8
+ create: (body: CreateCustomFieldBody) => Promise<AxiosResponse<string>>;
9
+ update: (id: string, body: EditCustomFieldBody) => Promise<AxiosResponse<string>>;
10
+ setActive: (body: SetActiveCustomFieldBody) => Promise<AxiosResponse<string>>;
11
+ delete: (body: DeleteCustomFieldBody) => Promise<AxiosResponse<string>>;
12
+ };
13
+ export default CustomFieldService;
@@ -0,0 +1,15 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { TableParams } from '../dto/dataTable.dto';
3
+ import { CreateDivisionBody, DeleteDivisionBody, EditDivisionBody } from '../dto/divisionService.dto';
4
+ import { DivisionDetailResponse, DivisionDropdownResponse, DivisionListResponse } from '../types/divisionService.type';
5
+ import { FetchDetailResponse, FetchListResponse } from '../types/fetchResponse.type';
6
+ declare const DivisionService: {
7
+ getList: (params?: TableParams) => Promise<AxiosResponse<FetchListResponse<DivisionListResponse[0]>>>;
8
+ getDetail: (id: string) => Promise<AxiosResponse<FetchDetailResponse<DivisionDetailResponse>>>;
9
+ create: (body: CreateDivisionBody) => Promise<AxiosResponse<string>>;
10
+ update: (id: string, body: EditDivisionBody) => Promise<AxiosResponse<string>>;
11
+ delete: (body: DeleteDivisionBody) => Promise<AxiosResponse<string>>;
12
+ getDropdown: () => Promise<AxiosResponse<FetchDetailResponse<DivisionDropdownResponse>>>;
13
+ export: (params?: TableParams) => Promise<AxiosResponse<Blob>>;
14
+ };
15
+ export default DivisionService;
@@ -0,0 +1,15 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { TableParams } from '../dto/dataTable.dto';
3
+ import { CreatePositionBody, DeletePositionBody, EditPositionBody } from '../dto/positionService.dto';
4
+ import { FetchDetailResponse, FetchListResponse } from '../types/fetchResponse.type';
5
+ import { PositionDetailResponse, PositionDropdownResponse, PositionListResponse } from '../types/positionService.type';
6
+ declare const PositionService: {
7
+ getList: (params?: TableParams) => Promise<AxiosResponse<FetchListResponse<PositionListResponse[0]>>>;
8
+ getDetail: (id: string) => Promise<AxiosResponse<FetchDetailResponse<PositionDetailResponse>>>;
9
+ create: (body: CreatePositionBody) => Promise<AxiosResponse<string>>;
10
+ update: (id: string, body: EditPositionBody) => Promise<AxiosResponse<string>>;
11
+ delete: (body: DeletePositionBody) => Promise<AxiosResponse<string>>;
12
+ getDropdown: () => Promise<AxiosResponse<FetchDetailResponse<PositionDropdownResponse>>>;
13
+ export: (params?: TableParams) => Promise<AxiosResponse<Blob>>;
14
+ };
15
+ export default PositionService;
@@ -0,0 +1,20 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { BulkSetActiveUserBody, ChangePasswordBody, CreateUserBody, DeleteUserBody, EditUserBody, EditUserFcmTokenBody, GetUserListQueryParams, ResendActivationEmailBody, UserOptionsQueryParams } from '../dto/userService.dto';
3
+ import { FetchDetailResponse, FetchListResponse } from '../types/fetchResponse.type';
4
+ import { UserDetailResponse, UserListResponse, UserOptionsResponse } from '../types/userService.type';
5
+ declare const UserService: {
6
+ getList: (params?: GetUserListQueryParams) => Promise<AxiosResponse<FetchListResponse<UserListResponse[0]>>>;
7
+ getOptions: (body: UserOptionsQueryParams) => Promise<AxiosResponse<FetchDetailResponse<UserOptionsResponse>>>;
8
+ getDetail: (id: string) => Promise<AxiosResponse<FetchDetailResponse<UserDetailResponse>>>;
9
+ create: (body: CreateUserBody) => Promise<AxiosResponse<string>>;
10
+ update: (id: string, body: EditUserBody) => Promise<AxiosResponse<string>>;
11
+ setActive: (body: BulkSetActiveUserBody) => Promise<AxiosResponse<{
12
+ message: string;
13
+ }>>;
14
+ updateFcmToken: (body: EditUserFcmTokenBody) => Promise<AxiosResponse<string>>;
15
+ resendActivationEmail: (body: ResendActivationEmailBody) => Promise<AxiosResponse<string>>;
16
+ changePassword: (id: string, body: ChangePasswordBody) => Promise<AxiosResponse<string>>;
17
+ delete: (body: DeleteUserBody) => Promise<AxiosResponse<string>>;
18
+ export: (params?: GetUserListQueryParams) => Promise<AxiosResponse<Blob>>;
19
+ };
20
+ export default UserService;
@@ -0,0 +1,62 @@
1
+ export interface LoginResponse {
2
+ _id: string;
3
+ companyName: string;
4
+ companyCode: string;
5
+ fullName: string;
6
+ profilePicture: string;
7
+ email: string;
8
+ isDefault: boolean;
9
+ access: string[];
10
+ generalSetting: {
11
+ dateFormat: string;
12
+ timeFormat: string;
13
+ timezone: string;
14
+ currency: {
15
+ currency: string;
16
+ symbol: string;
17
+ locale: string;
18
+ label: string;
19
+ };
20
+ };
21
+ }
22
+ export interface VerifyTokenResponse {
23
+ token: string;
24
+ }
25
+ export interface ModuleLoginResponse {
26
+ _id: string;
27
+ companyName: string;
28
+ companyCode: string;
29
+ fullName: string;
30
+ profilePicture: string;
31
+ isDefault: boolean;
32
+ generalSetting: {
33
+ dateFormat: string;
34
+ timeFormat: string;
35
+ timezone: string;
36
+ currency: {
37
+ currency: string;
38
+ symbol: string;
39
+ locale: string;
40
+ label: string;
41
+ };
42
+ geolocation: boolean;
43
+ };
44
+ isTotalControl: boolean;
45
+ isReadOnly: boolean;
46
+ plan: string;
47
+ addOn: {
48
+ attribute: boolean;
49
+ };
50
+ systemRoles: Record<string, {
51
+ create: boolean;
52
+ view: boolean;
53
+ update: boolean;
54
+ delete: boolean;
55
+ }>;
56
+ transactionRoles: Record<string, {
57
+ manager: boolean;
58
+ monitoringReport: boolean;
59
+ approver: boolean;
60
+ staff: boolean;
61
+ }>;
62
+ }
@@ -0,0 +1,15 @@
1
+ export interface ConcurrentUserItem {
2
+ _id: string;
3
+ profilePicture: string;
4
+ name: string;
5
+ email: string;
6
+ userType: string;
7
+ position: string;
8
+ division: string;
9
+ lastLogin: string;
10
+ }
11
+ export interface ConcurrentUserListResponse {
12
+ moduleId: string;
13
+ activeSessions: ConcurrentUserItem[];
14
+ count: number;
15
+ }
@@ -0,0 +1,19 @@
1
+ export interface CustomFieldItem {
2
+ _id: string;
3
+ name: string;
4
+ dataType: string;
5
+ optionValue: string[];
6
+ usedOptions: string[];
7
+ isActive: boolean;
8
+ isRequired: string;
9
+ createdAt: string;
10
+ updatedAt: string;
11
+ }
12
+ export interface CustomFieldOptions {
13
+ dataTypeOptions: {
14
+ label: string;
15
+ value: string;
16
+ }[];
17
+ }
18
+ export type CustomFieldListResponse = CustomFieldItem[];
19
+ export type CustomFieldOptionsResponse = CustomFieldOptions;
@@ -0,0 +1,12 @@
1
+ export interface DivisionItem {
2
+ _id: string;
3
+ name: string;
4
+ inUse?: boolean;
5
+ }
6
+ export interface DivisionDropdownItem {
7
+ _id: string;
8
+ name: string;
9
+ }
10
+ export type DivisionListResponse = DivisionItem[];
11
+ export type DivisionDetailResponse = DivisionItem;
12
+ export type DivisionDropdownResponse = DivisionDropdownItem[];
@@ -0,0 +1,12 @@
1
+ export interface PositionItem {
2
+ _id: string;
3
+ name: string;
4
+ inUse?: boolean;
5
+ }
6
+ export interface PositionDropdownItem {
7
+ _id: string;
8
+ name: string;
9
+ }
10
+ export type PositionListResponse = PositionItem[];
11
+ export type PositionDetailResponse = PositionItem;
12
+ export type PositionDropdownResponse = PositionDropdownItem[];
@@ -0,0 +1,66 @@
1
+ export interface UserItem {
2
+ _id: string;
3
+ isActive: boolean;
4
+ isDefault: boolean;
5
+ profilePicture: string | null;
6
+ fullName: string;
7
+ email: string;
8
+ position: string | null;
9
+ division: string;
10
+ employeeId: string | null;
11
+ modifiedBy: string;
12
+ updatedAt: string;
13
+ pendingApproval: number;
14
+ assignedAssets: number;
15
+ borrowedAssets: number;
16
+ pendingEmailChange: string | null;
17
+ isEmailConfirmed: boolean;
18
+ }
19
+ export interface UserDetail {
20
+ _id: string;
21
+ isActive: boolean;
22
+ isDefault: boolean;
23
+ isEmailConfirmed: boolean;
24
+ profilePicture: string | null;
25
+ userTag: string | null;
26
+ firstName: string;
27
+ lastName: string;
28
+ fullName: string;
29
+ email: string;
30
+ pendingEmailChange: string | null;
31
+ position: string | null;
32
+ division: string;
33
+ employeeId: string | null;
34
+ expiryDate: string | null;
35
+ access: string[];
36
+ customFields: {
37
+ _id: string;
38
+ name: string;
39
+ type: string;
40
+ dataType: string;
41
+ isRequired: boolean;
42
+ optionValue: string[];
43
+ value: unknown;
44
+ }[];
45
+ }
46
+ export interface UserOptions {
47
+ isActiveOptions: {
48
+ label: string;
49
+ value: boolean;
50
+ }[];
51
+ positionOptions: {
52
+ label: string;
53
+ value: string;
54
+ }[];
55
+ divisionOptions: {
56
+ label: string;
57
+ value: string;
58
+ }[];
59
+ modifiedByOptions: {
60
+ label: string;
61
+ value: string;
62
+ }[];
63
+ }
64
+ export type UserListResponse = UserItem[];
65
+ export type UserDetailResponse = UserDetail;
66
+ export type UserOptionsResponse = UserOptions;