@floristcloud/api-lib 1.2.193 → 1.2.195

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 (197) hide show
  1. package/build/commands/auth/register-user.command.js +4 -15
  2. package/build/commands/auth/reset-password-by-admin.command.js +4 -9
  3. package/build/commands/auth/reset-password-by-security-code.command.js +8 -18
  4. package/build/commands/auth/reset-password-by-token.command.js +9 -20
  5. package/build/commands/auth/reset-password-by-user.command.js +4 -9
  6. package/build/commands/company/createCompanyWithUser.command.js +4 -21
  7. package/build/commands/company/getCompanyList.query.js +4 -12
  8. package/build/commands/domain/get-domain-list.query.js +4 -12
  9. package/build/commands/pre-order/get-pre-order-list.query.js +4 -20
  10. package/build/commands/pre-order/get-pre-order-tag-list.query.js +10 -0
  11. package/build/commands/pre-order/index.js +1 -0
  12. package/build/commands/session/validate-session-s2s.query.js +4 -19
  13. package/build/commands/session/validate-ws-ticket-s2s.query.js +2 -5
  14. package/build/commands/user/attachUserToCompany.command.js +1 -0
  15. package/build/commands/user/create-user-global.command.js +4 -22
  16. package/build/commands/user/createUserByClientId.command.js +4 -25
  17. package/build/commands/user/createUserForCompany.command.js +4 -23
  18. package/build/commands/user/get-me.query.js +2 -11
  19. package/build/commands/user/getUser.command.js +2 -8
  20. package/build/commands/user/update-password-by-user.command.js +4 -9
  21. package/build/commands/work-session/create-many-work-session.command.js +4 -11
  22. package/build/commands/work-session/export-overtime.query.js +4 -20
  23. package/build/constant/error.js +2 -0
  24. package/build/constant/validation-i18n-key.js +2 -0
  25. package/build/constant/validation-i18n-message.js +2 -0
  26. package/build/constant/work-session-report-limits.constant.js +7 -0
  27. package/build/enum/index.js +1 -0
  28. package/build/enum/security-code-purpose.enum.js +8 -0
  29. package/build/schemas/auth/index.js +31 -0
  30. package/build/schemas/auth/password-reset-data.schema.js +6 -0
  31. package/build/schemas/auth/password-reset-user.schema.js +5 -0
  32. package/build/schemas/auth/password.schema.js +9 -0
  33. package/build/schemas/auth/register-user-request.schema.js +11 -0
  34. package/build/schemas/auth/register-user-response.schema.js +6 -0
  35. package/build/schemas/auth/registration-success.schema.js +5 -0
  36. package/build/schemas/auth/reset-password-by-admin-request.schema.js +6 -0
  37. package/build/schemas/auth/reset-password-by-admin-response.schema.js +5 -0
  38. package/build/schemas/auth/reset-password-by-security-code-request.schema.js +11 -0
  39. package/build/schemas/auth/reset-password-by-security-code-response.schema.js +6 -0
  40. package/build/schemas/auth/reset-password-by-token-request.schema.js +8 -0
  41. package/build/schemas/auth/reset-password-by-token-response.schema.js +6 -0
  42. package/build/schemas/auth/reset-password-by-user-request.schema.js +6 -0
  43. package/build/schemas/auth/reset-password-by-user-response.schema.js +5 -0
  44. package/build/schemas/auth/restore-access-token.schema.js +5 -0
  45. package/build/schemas/client/register-client-webshop-request.schema.js +2 -1
  46. package/build/schemas/company/create-company-data.schema.js +5 -0
  47. package/build/schemas/company/create-company-user-data.schema.js +6 -0
  48. package/build/schemas/company/create-company-with-user-request.schema.js +7 -0
  49. package/build/schemas/company/create-company-with-user-response.schema.js +6 -0
  50. package/build/schemas/company/get-company-list-request.schema.js +8 -0
  51. package/build/schemas/company/get-company-list-response.schema.js +6 -0
  52. package/build/schemas/company/index.js +21 -0
  53. package/build/schemas/consignment/consignment.schema.js +9 -9
  54. package/build/schemas/domain/get-domain-list-request.schema.js +8 -0
  55. package/build/schemas/domain/get-domain-list-response.schema.js +6 -0
  56. package/build/schemas/employee-schedule/employee-schedule.schema.js +1 -1
  57. package/build/schemas/index.js +29 -8
  58. package/build/schemas/pre-order/get-pre-order-list-request.schema.js +19 -0
  59. package/build/schemas/pre-order/get-pre-order-list-response.schema.js +8 -0
  60. package/build/schemas/pre-order/get-pre-order-tag-list-request.schema.js +13 -0
  61. package/build/schemas/pre-order/get-pre-order-tag-list-response.schema.js +7 -0
  62. package/build/schemas/pre-order/index.js +4 -0
  63. package/build/schemas/product/group/update-group-product-update-batch-request-data.schema.js +1 -1
  64. package/build/schemas/product/product-base.schema.js +1 -1
  65. package/build/schemas/product/update-product-request.schema.js +2 -2
  66. package/build/schemas/session/validate-session-s2s-request.schema.js +7 -0
  67. package/build/schemas/session/validate-session-s2s-response.schema.js +6 -0
  68. package/build/schemas/session/validate-ws-ticket-s2s-request.schema.js +7 -0
  69. package/build/schemas/session/validated-session-user.schema.js +15 -0
  70. package/build/schemas/user/allowed-user-role.schema.js +8 -0
  71. package/build/schemas/user/create-user-by-client-id-data.schema.js +15 -0
  72. package/build/schemas/user/create-user-by-client-id-request.schema.js +6 -0
  73. package/build/schemas/user/create-user-by-client-id-response.schema.js +11 -0
  74. package/build/schemas/user/create-user-for-company-request.schema.js +11 -0
  75. package/build/schemas/user/create-user-for-company-response.schema.js +11 -0
  76. package/build/schemas/user/create-user-global-request.schema.js +15 -0
  77. package/build/schemas/user/create-user-global-response.schema.js +6 -0
  78. package/build/schemas/user/create-user.schema.js +14 -0
  79. package/build/schemas/user/get-me-data.schema.js +7 -0
  80. package/build/schemas/user/get-me-response.schema.js +6 -0
  81. package/build/schemas/user/get-user-data.schema.js +6 -0
  82. package/build/schemas/user/get-user-response.schema.js +6 -0
  83. package/build/schemas/user/index.js +15 -0
  84. package/build/schemas/user/update-password-by-user-request.schema.js +9 -0
  85. package/build/schemas/user/update-password-by-user-response.schema.js +5 -0
  86. package/build/schemas/user/user.schema.js +2 -12
  87. package/build/schemas/work-session/create-many-work-session-request.schema.js +8 -0
  88. package/build/schemas/work-session/create-many-work-session-response.schema.js +9 -0
  89. package/build/schemas/work-session/create-work-session-for-employee.schema.js +8 -0
  90. package/build/schemas/work-session/create-work-session.schema.js +18 -0
  91. package/build/schemas/work-session/export-overtime-request.schema.js +23 -0
  92. package/build/schemas/work-session/export-overtime-response.schema.js +6 -0
  93. package/build/schemas/work-session/overtime-file.schema.js +5 -0
  94. package/build/schemas/work-session/update-work-session.schema.js +21 -0
  95. package/build/schemas/work-session/work-session-date.schema.js +13 -0
  96. package/build/schemas/work-session/work-session-extended-list.schema.js +9 -0
  97. package/build/schemas/work-session/work-session-extended.schema.js +8 -0
  98. package/build/schemas/work-session/work-session.schema.js +1 -26
  99. package/commands/auth/register-user.command.ts +3 -15
  100. package/commands/auth/reset-password-by-admin.command.ts +3 -9
  101. package/commands/auth/reset-password-by-security-code.command.ts +5 -17
  102. package/commands/auth/reset-password-by-token.command.ts +6 -19
  103. package/commands/auth/reset-password-by-user.command.ts +3 -9
  104. package/commands/company/createCompanyWithUser.command.ts +3 -21
  105. package/commands/company/getCompanyList.query.ts +4 -14
  106. package/commands/domain/get-domain-list.query.ts +3 -13
  107. package/commands/pre-order/get-pre-order-list.query.ts +3 -20
  108. package/commands/pre-order/get-pre-order-tag-list.query.ts +11 -0
  109. package/commands/pre-order/index.ts +1 -0
  110. package/commands/session/validate-session-s2s.query.ts +3 -20
  111. package/commands/session/validate-ws-ticket-s2s.query.ts +2 -6
  112. package/commands/user/attachUserToCompany.command.ts +1 -0
  113. package/commands/user/create-user-global.command.ts +3 -22
  114. package/commands/user/createUserByClientId.command.ts +3 -25
  115. package/commands/user/createUserForCompany.command.ts +3 -26
  116. package/commands/user/get-me.query.ts +2 -11
  117. package/commands/user/getUser.command.ts +3 -9
  118. package/commands/user/update-password-by-user.command.ts +3 -10
  119. package/commands/work-session/create-many-work-session.command.ts +3 -12
  120. package/commands/work-session/export-overtime.query.ts +3 -21
  121. package/constant/error.ts +3 -0
  122. package/constant/validation-i18n-key.ts +2 -0
  123. package/constant/validation-i18n-message.ts +2 -0
  124. package/constant/work-session-report-limits.constant.ts +4 -0
  125. package/enum/index.ts +2 -0
  126. package/enum/security-code-purpose.enum.ts +4 -0
  127. package/package.json +1 -1
  128. package/schemas/auth/index.ts +15 -0
  129. package/schemas/auth/password-reset-data.schema.ts +4 -0
  130. package/schemas/auth/password-reset-user.schema.ts +3 -0
  131. package/schemas/auth/password.schema.ts +7 -0
  132. package/schemas/auth/register-user-request.schema.ts +9 -0
  133. package/schemas/auth/register-user-response.schema.ts +4 -0
  134. package/schemas/auth/registration-success.schema.ts +3 -0
  135. package/schemas/auth/reset-password-by-admin-request.schema.ts +4 -0
  136. package/schemas/auth/reset-password-by-admin-response.schema.ts +3 -0
  137. package/schemas/auth/reset-password-by-security-code-request.schema.ts +9 -0
  138. package/schemas/auth/reset-password-by-security-code-response.schema.ts +4 -0
  139. package/schemas/auth/reset-password-by-token-request.schema.ts +6 -0
  140. package/schemas/auth/reset-password-by-token-response.schema.ts +4 -0
  141. package/schemas/auth/reset-password-by-user-request.schema.ts +4 -0
  142. package/schemas/auth/reset-password-by-user-response.schema.ts +3 -0
  143. package/schemas/auth/restore-access-token.schema.ts +3 -0
  144. package/schemas/client/register-client-webshop-request.schema.ts +2 -1
  145. package/schemas/company/create-company-data.schema.ts +3 -0
  146. package/schemas/company/create-company-user-data.schema.ts +4 -0
  147. package/schemas/company/create-company-with-user-request.schema.ts +5 -0
  148. package/schemas/company/create-company-with-user-response.schema.ts +4 -0
  149. package/schemas/company/get-company-list-request.schema.ts +5 -0
  150. package/schemas/company/get-company-list-response.schema.ts +3 -0
  151. package/schemas/company/index.ts +5 -0
  152. package/schemas/consignment/consignment.schema.ts +9 -9
  153. package/schemas/domain/get-domain-list-request.schema.ts +5 -0
  154. package/schemas/domain/get-domain-list-response.schema.ts +3 -0
  155. package/schemas/employee-schedule/employee-schedule.schema.ts +1 -1
  156. package/schemas/index.ts +30 -8
  157. package/schemas/pre-order/get-pre-order-list-request.schema.ts +17 -0
  158. package/schemas/pre-order/get-pre-order-list-response.schema.ts +6 -0
  159. package/schemas/pre-order/get-pre-order-tag-list-request.schema.ts +11 -0
  160. package/schemas/pre-order/get-pre-order-tag-list-response.schema.ts +5 -0
  161. package/schemas/pre-order/index.ts +4 -0
  162. package/schemas/product/group/update-group-product-update-batch-request-data.schema.ts +1 -1
  163. package/schemas/product/product-base.schema.ts +1 -1
  164. package/schemas/product/update-product-request.schema.ts +2 -2
  165. package/schemas/session/validate-session-s2s-request.schema.ts +4 -0
  166. package/schemas/session/validate-session-s2s-response.schema.ts +3 -0
  167. package/schemas/session/validate-ws-ticket-s2s-request.schema.ts +4 -0
  168. package/schemas/session/validated-session-user.schema.ts +12 -0
  169. package/schemas/user/allowed-user-role.schema.ts +6 -0
  170. package/schemas/user/create-user-by-client-id-data.schema.ts +13 -0
  171. package/schemas/user/create-user-by-client-id-request.schema.ts +4 -0
  172. package/schemas/user/create-user-by-client-id-response.schema.ts +9 -0
  173. package/schemas/user/create-user-for-company-request.schema.ts +9 -0
  174. package/schemas/user/create-user-for-company-response.schema.ts +9 -0
  175. package/schemas/user/create-user-global-request.schema.ts +13 -0
  176. package/schemas/user/create-user-global-response.schema.ts +4 -0
  177. package/schemas/user/create-user.schema.ts +12 -0
  178. package/schemas/user/get-me-data.schema.ts +5 -0
  179. package/schemas/user/get-me-response.schema.ts +4 -0
  180. package/schemas/user/get-user-data.schema.ts +4 -0
  181. package/schemas/user/get-user-response.schema.ts +4 -0
  182. package/schemas/user/index.ts +15 -0
  183. package/schemas/user/update-password-by-user-request.schema.ts +7 -0
  184. package/schemas/user/update-password-by-user-response.schema.ts +3 -0
  185. package/schemas/user/user.schema.ts +1 -12
  186. package/schemas/work-session/create-many-work-session-request.schema.ts +5 -0
  187. package/schemas/work-session/create-many-work-session-response.schema.ts +6 -0
  188. package/schemas/work-session/create-work-session-for-employee.schema.ts +5 -0
  189. package/schemas/work-session/create-work-session.schema.ts +15 -0
  190. package/schemas/work-session/export-overtime-request.schema.ts +24 -0
  191. package/schemas/work-session/export-overtime-response.schema.ts +3 -0
  192. package/schemas/work-session/overtime-file.schema.ts +2 -0
  193. package/schemas/work-session/update-work-session.schema.ts +18 -0
  194. package/schemas/work-session/work-session-date.schema.ts +14 -0
  195. package/schemas/work-session/work-session-extended-list.schema.ts +6 -0
  196. package/schemas/work-session/work-session-extended.schema.ts +5 -0
  197. package/schemas/work-session/work-session.schema.ts +0 -30
@@ -1,25 +1,6 @@
1
- import { z } from 'zod';
2
- import { UserSchema } from '../../schemas';
3
-
4
- const CreateUserGlobalRequestSchema = UserSchema.omit({
5
- uuid: true,
6
- createdAt: true,
7
- updatedAt: true,
8
- deletedAt: true,
9
- companyUUID: true,
10
- roles: true,
11
- isGlobal: true,
12
- status: true,
13
- restoreTokenHash: true,
14
- passwordHash: true,
15
- }).extend({
16
- password: z.string(),
17
- });
18
-
19
- const CreateUserGlobalResponseSchema = z.object({
20
- message: z.string().optional(),
21
- data: UserSchema,
22
- });
1
+ import type { z } from 'zod';
2
+ import { CreateUserGlobalRequestSchema } from '../../schemas/user/create-user-global-request.schema';
3
+ import { CreateUserGlobalResponseSchema } from '../../schemas/user/create-user-global-response.schema';
23
4
 
24
5
  export namespace CreateUserGlobalCommand {
25
6
  export const RequestSchema = CreateUserGlobalRequestSchema;
@@ -1,28 +1,6 @@
1
- import { z } from 'zod';
2
- import { UserSchema } from '../../schemas';
3
- import { UserRoleEnum } from '../../enum';
4
-
5
- const CreateUserByClientIdRequestSchema = z.object({
6
- user: z
7
- .object({
8
- password: z.string(),
9
- name: z.string(),
10
- email: z.email().toLowerCase().nullable().optional(),
11
- phone: z.string().nullable().optional(),
12
- roles: z.array(z.nativeEnum(UserRoleEnum)).optional().default([UserRoleEnum.BUYER]),
13
- })
14
- .refine(data => data.email || data.phone, {
15
- message: 'validation.emailOrPhoneRequired',
16
- }),
17
- clientUuid: z.uuid(),
18
- });
19
-
20
- const CreateUserByClientIdResponseSchema = z.object({
21
- message: z.string().optional(),
22
- code: z.string().optional(),
23
- i18nKey: z.string().optional(),
24
- data: UserSchema,
25
- });
1
+ import type { z } from 'zod';
2
+ import { CreateUserByClientIdRequestSchema } from '../../schemas/user/create-user-by-client-id-request.schema';
3
+ import { CreateUserByClientIdResponseSchema } from '../../schemas/user/create-user-by-client-id-response.schema';
26
4
 
27
5
  export namespace CreateUserByClientIdCommand {
28
6
  export const RequestSchema = CreateUserByClientIdRequestSchema;
@@ -1,29 +1,6 @@
1
- import { z } from 'zod';
2
- import { UserSchema } from '../../schemas';
3
- import { UserRoleEnum } from '../../enum';
4
-
5
- const UserRoles = z.nativeEnum(UserRoleEnum);
6
- const AllowedRoles = UserRoles.refine(role => role !== UserRoleEnum.BUYER, {
7
- message: 'validation.allowedRoles',
8
- });
9
-
10
- const CreateUserForCompanyRequestSchema = UserSchema.pick({
11
- email: true,
12
- phone: true,
13
- name: true,
14
- }).merge(
15
- z.object({
16
- roles: z.array(AllowedRoles),
17
- password: z.string(),
18
- }),
19
- );
20
-
21
- const CreateUserForCompanyResponseSchema = z.object({
22
- message: z.string().optional(),
23
- code: z.string().optional(),
24
- i18nKey: z.string().optional(),
25
- data: UserSchema,
26
- });
1
+ import type { z } from 'zod';
2
+ import { CreateUserForCompanyRequestSchema } from '../../schemas/user/create-user-for-company-request.schema';
3
+ import { CreateUserForCompanyResponseSchema } from '../../schemas/user/create-user-for-company-response.schema';
27
4
 
28
5
  export namespace CreateUserForCompanyCommand {
29
6
  export const RequestSchema = CreateUserForCompanyRequestSchema;
@@ -1,14 +1,5 @@
1
- import { z } from 'zod';
2
- import { UserSchema } from '../../schemas';
3
- import { EffectivePermissionsSchema } from '../../schemas/access-policy/access-policy.schema';
4
-
5
- const GetMeResponseSchema = z.object({
6
- message: z.string().optional(),
7
- data: z.object({
8
- user: UserSchema.omit({ passwordHash: true, restoreTokenHash: true }),
9
- permissions: EffectivePermissionsSchema,
10
- }),
11
- });
1
+ import type { z } from 'zod';
2
+ import { GetMeResponseSchema } from '../../schemas/user/get-me-response.schema';
12
3
 
13
4
  export namespace GetMeContractQuery {
14
5
  export const ResponseSchema = GetMeResponseSchema;
@@ -1,13 +1,7 @@
1
- import { z } from 'zod';
2
- import { UserSchema } from '../../schemas';
3
-
4
- const GetUserRequestSchema = z.object({
5
- data: z.object({
6
- user: UserSchema.omit({ passwordHash: true, restoreTokenHash: true }),
7
- }),
8
- });
1
+ import type { z } from 'zod';
2
+ import { GetUserResponseSchema } from '../../schemas/user/get-user-response.schema';
9
3
 
10
4
  export namespace GetUserCommand {
11
- export const ResponseSchema = GetUserRequestSchema;
5
+ export const ResponseSchema = GetUserResponseSchema;
12
6
  export type Response = z.infer<typeof ResponseSchema>;
13
7
  }
@@ -1,17 +1,10 @@
1
- import { z } from 'zod';
2
-
3
- const UpdatePasswordByUserRequestSchema = z.object({
4
- password: z.string(),
5
- });
6
-
7
- const UpdatePasswordByUserResponseSchema = z.object({
8
- message: z.string(),
9
- });
1
+ import type { z } from 'zod';
2
+ import { UpdatePasswordByUserRequestSchema } from '../../schemas/user/update-password-by-user-request.schema';
3
+ import { UpdatePasswordByUserResponseSchema } from '../../schemas/user/update-password-by-user-response.schema';
10
4
 
11
5
  export namespace UpdatePasswordByUserContractCommand {
12
6
  export const RequestSchema = UpdatePasswordByUserRequestSchema;
13
7
  export type Request = z.infer<typeof RequestSchema>;
14
-
15
8
  export const ResponseSchema = UpdatePasswordByUserResponseSchema;
16
9
  export type Response = z.infer<typeof ResponseSchema>;
17
10
  }
@@ -1,15 +1,6 @@
1
- import { z } from 'zod';
2
- import { CreateWorkSessionSchema, WorkSessionSchema } from '../../schemas';
3
-
4
- const CreateManyWorkSessionRequestSchema = z.object({
5
- data: z.array(CreateWorkSessionSchema),
6
- });
7
-
8
- const CreateManyWorkSessionResponseSchema = z.object({
9
- message: z.string().optional(),
10
- data: z.array(WorkSessionSchema),
11
- });
12
-
1
+ import type { z } from 'zod';
2
+ import { CreateManyWorkSessionRequestSchema } from '../../schemas/work-session/create-many-work-session-request.schema';
3
+ import { CreateManyWorkSessionResponseSchema } from '../../schemas/work-session/create-many-work-session-response.schema';
13
4
  export namespace CreateManyWorkSessionContractCommand {
14
5
  export const RequestSchema = CreateManyWorkSessionRequestSchema;
15
6
  export type Request = z.infer<typeof RequestSchema>;
@@ -1,24 +1,6 @@
1
- import { z } from 'zod';
2
- import { dateRangeCheck } from '../../helpers/date.helper';
3
-
4
- const ExportOvertimeRequestSchema = z
5
- .object({
6
- startDate: z.coerce.date(),
7
- endDate: z.coerce.date(),
8
- userUUIDs: z.array(z.string().uuid()).optional(),
9
- })
10
- .refine(value => dateRangeCheck(value.startDate, value.endDate), {
11
- message: 'validation.dateRange',
12
- path: ['endDate', 'startDate'],
13
- });
14
-
15
- const ExportOvertimeResponseSchema = z.object({
16
- data: z.object({
17
- fileUrl: z.string(),
18
- fileKey: z.string(),
19
- }),
20
- });
21
-
1
+ import type { z } from 'zod';
2
+ import { ExportOvertimeRequestSchema } from '../../schemas/work-session/export-overtime-request.schema';
3
+ import { ExportOvertimeResponseSchema } from '../../schemas/work-session/export-overtime-response.schema';
22
4
  export namespace ExportOvertimeContractQuery {
23
5
  export const RequestSchema = ExportOvertimeRequestSchema;
24
6
  export type Request = z.infer<typeof RequestSchema>;
package/constant/error.ts CHANGED
@@ -136,6 +136,9 @@ export const ERRORS = {
136
136
  USER_EMAIL_REQUIRED_FOR_NOTIFICATION: { code: 'U018', message: 'User email is required for email notification', httpCode: 400 },
137
137
  USER_PASSWORD_GENERATION_FAILED: { code: 'U019', message: 'Failed to generate and send password', httpCode: 500 },
138
138
 
139
+ CURRENT_PASSWORD_REQUIRED: { code: 'U020', message: 'Current password is required', httpCode: 400 },
140
+ INVALID_CURRENT_PASSWORD: { code: 'U021', message: 'Current password is incorrect', httpCode: 400 },
141
+
139
142
  //AUTH
140
143
  FAILED_TO_UPDATE: { code: 'A010', message: 'User update failed', httpCode: 500 },
141
144
  RESTORE_TOKEN_ERROR: { code: 'A012', message: 'Invalid recovery token', httpCode: 500 },
@@ -7,6 +7,8 @@
7
7
  * stable contract; the English text lives only in the frontend dictionary.
8
8
  */
9
9
  export const ValidationI18nKey = {
10
+ passwordMinLength: 'validation.passwordMinLength',
11
+ passwordMaxBytes: 'validation.passwordMaxBytes',
10
12
  dateRange: 'validation.dateRange',
11
13
  reportPeriodMax: 'validation.reportPeriodMax',
12
14
  emailOrPhoneRequired: 'validation.emailOrPhoneRequired',
@@ -11,6 +11,8 @@ import { ValidationI18nKey, ValidationI18nKeyType } from './validation-i18n-key'
11
11
  * Every token in ValidationI18nKey MUST have an entry here (enforced by the Record type).
12
12
  */
13
13
  export const VALIDATION_I18N_MESSAGE: Record<ValidationI18nKeyType, string> = {
14
+ [ValidationI18nKey.passwordMinLength]: 'Password must contain at least 8 characters',
15
+ [ValidationI18nKey.passwordMaxBytes]: 'Password must not exceed 72 bytes in UTF-8',
14
16
  [ValidationI18nKey.dateRange]: 'Start date must be before or equal to end date',
15
17
  [ValidationI18nKey.reportPeriodMax]: 'The selected period exceeds the maximum allowed range',
16
18
  [ValidationI18nKey.emailOrPhoneRequired]: 'Either email or phone is required',
@@ -0,0 +1,4 @@
1
+ export const WORK_SESSION_REPORT_LIMITS = {
2
+ maxPeriodDays: 731,
3
+ millisecondsPerDay: 24 * 60 * 60 * 1000,
4
+ };
package/enum/index.ts CHANGED
@@ -172,3 +172,5 @@ export * from './order-seller-sync-status-list';
172
172
  export * from './seller-sync-status.enum';
173
173
 
174
174
  export * from './seller-sync-item-status.enum';
175
+
176
+ export * from './security-code-purpose.enum';
@@ -0,0 +1,4 @@
1
+ export enum SecurityCodePurposeEnum {
2
+ PASSWORD_RESET = 'PASSWORD_RESET',
3
+ ACCOUNT_DELETION = 'ACCOUNT_DELETION',
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floristcloud/api-lib",
3
- "version": "1.2.193",
3
+ "version": "1.2.195",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "scripts": {
@@ -0,0 +1,15 @@
1
+ export * from './password.schema';
2
+ export * from './registration-success.schema';
3
+ export * from './register-user-request.schema';
4
+ export * from './register-user-response.schema';
5
+ export * from './reset-password-by-admin-request.schema';
6
+ export * from './reset-password-by-admin-response.schema';
7
+ export * from './reset-password-by-user-request.schema';
8
+ export * from './reset-password-by-user-response.schema';
9
+ export * from './reset-password-by-token-request.schema';
10
+ export * from './restore-access-token.schema';
11
+ export * from './reset-password-by-token-response.schema';
12
+ export * from './reset-password-by-security-code-request.schema';
13
+ export * from './password-reset-user.schema';
14
+ export * from './password-reset-data.schema';
15
+ export * from './reset-password-by-security-code-response.schema';
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { PasswordResetUserSchema } from './password-reset-user.schema';
3
+
4
+ export const PasswordResetDataSchema = z.object({ user: PasswordResetUserSchema });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+
3
+ export const PasswordResetUserSchema = z.object({ uuid: z.string(), email: z.string().nullable(), phone: z.string().nullable() });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { ValidationI18nKey } from '../../constant/validation-i18n-key';
3
+
4
+ export const PasswordSchema = z
5
+ .string()
6
+ .min(8, { message: ValidationI18nKey.passwordMinLength })
7
+ .refine(password => new TextEncoder().encode(password).byteLength <= 72, { message: ValidationI18nKey.passwordMaxBytes });
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { PasswordSchema } from './password.schema';
3
+
4
+ export const RegisterUserRequestSchema = z.object({
5
+ email: z.email().toLowerCase(),
6
+ phone: z.string(),
7
+ name: z.string(),
8
+ password: PasswordSchema,
9
+ });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { RegistrationSuccessSchema } from './registration-success.schema';
3
+
4
+ export const RegisterUserResponseSchema = z.object({ message: z.string().optional(), data: RegistrationSuccessSchema });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+
3
+ export const RegistrationSuccessSchema = z.object({ success: z.boolean() });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { PasswordSchema } from './password.schema';
3
+
4
+ export const ResetPasswordByAdminRequestSchema = z.object({ password: PasswordSchema });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+
3
+ export const ResetPasswordByAdminResponseSchema = z.object({ message: z.string().optional() });
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { PasswordSchema } from './password.schema';
3
+
4
+ export const ResetPasswordBySecurityCodeRequestSchema = z.object({
5
+ email: z.email().toLowerCase().optional(),
6
+ phone: z.string().optional(),
7
+ securityCode: z.string(),
8
+ password: PasswordSchema,
9
+ });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { PasswordResetDataSchema } from './password-reset-data.schema';
3
+
4
+ export const ResetPasswordBySecurityCodeResponseSchema = z.object({ data: PasswordResetDataSchema });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { PasswordSchema } from './password.schema';
3
+
4
+ export const ResetPasswordByTokenRequestSchema = z
5
+ .object({ email: z.email().toLowerCase().optional(), phone: z.string().optional(), restoreToken: z.string(), password: PasswordSchema })
6
+ .refine(data => data.email || data.phone, { message: 'validation.emailOrPhoneRequired', path: ['email', 'phone'] });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { RestoreAccessTokenSchema } from './restore-access-token.schema';
3
+
4
+ export const ResetPasswordByTokenResponseSchema = z.object({ message: z.string().optional(), data: RestoreAccessTokenSchema });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { PasswordSchema } from './password.schema';
3
+
4
+ export const ResetPasswordByUserRequestSchema = z.object({ password: PasswordSchema });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+
3
+ export const ResetPasswordByUserResponseSchema = z.object({ message: z.string().optional() });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+
3
+ export const RestoreAccessTokenSchema = z.object({ accessToken: z.string() });
@@ -1,9 +1,10 @@
1
+ import { PasswordSchema } from '../auth/password.schema';
1
2
  import { z } from 'zod';
2
3
  import { ClientTypeEnum } from '../../enum/client-type.enum';
3
4
 
4
5
  export const RegisterClientWebshopRequestSchema = z.object({
5
6
  name: z.string(),
6
- password: z.string(),
7
+ password: PasswordSchema,
7
8
  contactName: z.string().nullable(),
8
9
  phone: z.string(),
9
10
  email: z.email().toLowerCase(),
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+
3
+ export const CreateCompanyDataSchema = z.object({ name: z.string(), alias: z.string().optional() });
@@ -0,0 +1,4 @@
1
+ import { UserSchema } from '../user/user.schema';
2
+ import { PasswordSchema } from '../auth/password.schema';
3
+
4
+ export const CreateCompanyUserDataSchema = UserSchema.pick({ email: true, phone: true, name: true }).extend({ password: PasswordSchema });
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ import { CreateCompanyDataSchema } from './create-company-data.schema';
3
+ import { CreateCompanyUserDataSchema } from './create-company-user-data.schema';
4
+
5
+ export const CreateCompanyWithUserRequestSchema = z.object({ company: CreateCompanyDataSchema, user: CreateCompanyUserDataSchema });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { CompanySchema } from './company.schema';
3
+
4
+ export const CreateCompanyWithUserResponseSchema = z.object({ message: z.string().optional(), data: CompanySchema.nullable() });
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ export const GetCompanyListRequestSchema = z.object({
3
+ page: z.string().transform(val => Number(val) || 1),
4
+ count: z.string().transform(val => Number(val) || 10),
5
+ });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ import { CompanyListSchema } from './companyList.schema';
3
+ export const GetCompanyListResponseSchema = z.object({ message: z.string().optional(), data: CompanyListSchema });
@@ -0,0 +1,5 @@
1
+ export * from './create-company-data.schema';
2
+ export * from './create-company-user-data.schema';
3
+ export * from './create-company-with-user-request.schema';
4
+ export * from './create-company-with-user-response.schema';
5
+ export * from './get-company-list-response.schema';
@@ -21,25 +21,25 @@ export const ConsignmentSchema = z.object({
21
21
 
22
22
  export const ConsignmentWithStatisticForListSchema = ConsignmentSchema.extend({
23
23
  statistic: z.object({
24
- totalCostPrice: MoneySchema,
24
+ totalCostPrice: MoneySchema.nullable(),
25
25
  currentProductBalance: z.number(),
26
- currentCostPrice: MoneySchema,
26
+ currentCostPrice: MoneySchema.nullable(),
27
27
  totalProductQuantity: z.number(),
28
- totalSellings: MoneySchema,
29
- totalApprovedWriteOffSellings: MoneySchema,
28
+ totalSellings: MoneySchema.nullable(),
29
+ totalApprovedWriteOffSellings: MoneySchema.nullable(),
30
30
  }),
31
31
  });
32
32
 
33
33
  export const ConsignmentWithStatisticSchema = ConsignmentSchema.extend({
34
34
  statistic: z.object({
35
- totalCostPrice: MoneySchema,
35
+ totalCostPrice: MoneySchema.nullable(),
36
36
  currentProductBalance: z.number(),
37
- currentCostPrice: MoneySchema,
37
+ currentCostPrice: MoneySchema.nullable(),
38
38
  totalProductQuantity: z.number(),
39
- totalSellings: MoneySchema,
39
+ totalSellings: MoneySchema.nullable(),
40
40
  writeOffQuantity: z.number(),
41
- writeOffCostPrice: MoneySchema,
42
- writeOffCostPriceByOrderProduct: MoneySchema,
41
+ writeOffCostPrice: MoneySchema.nullable(),
42
+ writeOffCostPriceByOrderProduct: MoneySchema.nullable(),
43
43
  }),
44
44
  });
45
45
 
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ export const GetDomainListRequestSchema = z.object({
3
+ page: z.string().transform(val => Number(val) || 1),
4
+ count: z.string().transform(val => Number(val) || 10),
5
+ });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ import { DomainListSchema } from './domain.schema';
3
+ export const GetDomainListResponseSchema = z.object({ message: z.string().optional(), data: DomainListSchema });
@@ -20,7 +20,7 @@ export const EmployeeScheduleListSchema = z.object({
20
20
  });
21
21
 
22
22
  export const EmployeeScheduleExtendedSchema = EmployeeScheduleSchema.extend({
23
- user: UserSchema.omit({ passwordHash: true, restoreTokenHash: true }),
23
+ user: UserSchema,
24
24
  });
25
25
 
26
26
  export const EmployeeScheduleExtendedListSchema = z.object({
package/schemas/index.ts CHANGED
@@ -46,6 +46,7 @@ export * from './error-message.schema';
46
46
  export * from './file';
47
47
  export * from './i18n/localized-name.schema';
48
48
  export * from './integration';
49
+ export * from './measure-unit';
49
50
  export * from './message';
50
51
  export * from './messenger-profile';
51
52
  export * from './money-account';
@@ -70,9 +71,9 @@ export * from './package/package.schema';
70
71
  export * from './package/validate-package.schema';
71
72
  export * from './pagination-request.schema';
72
73
  export * from './parser';
73
- export * from './payment-invoice/payment-invoice.schema';
74
74
  export * from './payment-invoice/create-payment-invoice-request.schema';
75
75
  export * from './payment-invoice/create-payment-invoice-response.schema';
76
+ export * from './payment-invoice/payment-invoice.schema';
76
77
  export * from './positive-decimal4.schema';
77
78
  export * from './positive-money.schema';
78
79
  export * from './pre-order';
@@ -106,13 +107,13 @@ export * from './report/user-activity-by-section.schema';
106
107
  export * from './report/user-activity-summary-row.schema';
107
108
  export * from './report/user-activity-timeline-row.schema';
108
109
  export * from './service/service.schema';
109
- export * from './settings/settings.schema';
110
- export * from './settings/settings-private.schema';
111
- export * from './settings/settings-private-response.schema';
112
110
  export * from './settings/city-delivery-pricing-rule.schema';
113
111
  export * from './settings/default-delivery-pricing-rule.schema';
114
- export * from './settings/group-delivery-pricing-rule.schema';
115
112
  export * from './settings/delivery-pricing-tiers.schema';
113
+ export * from './settings/group-delivery-pricing-rule.schema';
114
+ export * from './settings/settings-private-response.schema';
115
+ export * from './settings/settings-private.schema';
116
+ export * from './settings/settings.schema';
116
117
  export * from './transaction';
117
118
  export * from './transaction/transaction-list.schema';
118
119
  export * from './transaction/transaction.schema';
@@ -129,7 +130,6 @@ export * from './write-off/write-off-archive-file.schema';
129
130
  export * from './write-off/write-off-export.schema';
130
131
  export * from './write-off/write-off-list.schema';
131
132
  export * from './write-off/write-off.schema';
132
- export * from './measure-unit';
133
133
 
134
134
  export * from './integration/one-c/update-one-c-settings-request.schema';
135
135
  export * from './integration/one-c/update-one-c-settings-response.schema';
@@ -146,9 +146,31 @@ export * from './integration/moysklad';
146
146
 
147
147
  export * from './company-legal-profile';
148
148
 
149
+ export * from './company/create-company-request.schema';
150
+ export * from './company/create-company-response.schema';
149
151
  export * from './order/create-order-request.schema';
150
152
  export * from './order/create-order-response.schema';
151
153
  export * from './order/update-order-request.schema';
152
154
  export * from './order/update-order-response.schema';
153
- export * from './company/create-company-request.schema';
154
- export * from './company/create-company-response.schema';
155
+
156
+ export * from './auth';
157
+ export * from './company';
158
+ export * from './company/get-company-list-request.schema';
159
+ export * from './domain/get-domain-list-request.schema';
160
+ export * from './domain/get-domain-list-response.schema';
161
+ export * from './session/session.schema';
162
+ export * from './session/validate-session-s2s-request.schema';
163
+ export * from './session/validate-session-s2s-response.schema';
164
+ export * from './session/validate-ws-ticket-s2s-request.schema';
165
+ export * from './session/validated-session-user.schema';
166
+ export * from './work-session/create-many-work-session-request.schema';
167
+ export * from './work-session/create-many-work-session-response.schema';
168
+ export * from './work-session/create-work-session-for-employee.schema';
169
+ export * from './work-session/create-work-session.schema';
170
+ export * from './work-session/export-overtime-request.schema';
171
+ export * from './work-session/export-overtime-response.schema';
172
+ export * from './work-session/overtime-file.schema';
173
+ export * from './work-session/update-work-session.schema';
174
+ export * from './work-session/work-session-date.schema';
175
+ export * from './work-session/work-session-extended-list.schema';
176
+ export * from './work-session/work-session-extended.schema';
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderStatusEnum } from '../../enum';
3
+
4
+ export const GetPreOrderListRequestSchema = z.object({
5
+ page: z.string().transform(val => Number(val) || 1),
6
+ count: z.coerce.number().optional().default(10),
7
+ searchQuery: z.string().optional(),
8
+ clientUUID: z.string().optional(),
9
+ preOrderCollectionUUID: z.string().optional(),
10
+ status: z.nativeEnum(PreOrderStatusEnum).array().optional(),
11
+ createdAtFrom: z.coerce.date().optional(),
12
+ createdAtTo: z.coerce.date().optional(),
13
+ responsibleUserUUID: z.string().optional(),
14
+ group: z.string().optional(),
15
+ // Точное совпадение с PreOrder.tag; значения берутся из GET /pre-order/list/tags.
16
+ tag: z.string().optional(),
17
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderListSchema } from './pre-order.schema';
3
+
4
+ export const GetPreOrderListResponseSchema = z.object({
5
+ data: PreOrderListSchema,
6
+ });
@@ -0,0 +1,11 @@
1
+ import { GetPreOrderListRequestSchema } from './get-pre-order-list-request.schema';
2
+
3
+ // Те же отборы, что у списка, кроме поиска, дат и самого тега: селект показывает все теги
4
+ // выбранного набора (например, status=STANDING_ORDER и каталог SO).
5
+ export const GetPreOrderTagListRequestSchema = GetPreOrderListRequestSchema.pick({
6
+ clientUUID: true,
7
+ preOrderCollectionUUID: true,
8
+ status: true,
9
+ responsibleUserUUID: true,
10
+ group: true,
11
+ });
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+
3
+ export const GetPreOrderTagListResponseSchema = z.object({
4
+ data: z.array(z.string()),
5
+ });
@@ -84,3 +84,7 @@ export * from './revert-pre-order-conversion-response.schema';
84
84
  export * from './standing-order-import-row-error.schema';
85
85
  export * from './import-standing-order-response-data.schema';
86
86
  export * from './import-standing-order-response.schema';
87
+ export * from './get-pre-order-list-request.schema';
88
+ export * from './get-pre-order-list-response.schema';
89
+ export * from './get-pre-order-tag-list-request.schema';
90
+ export * from './get-pre-order-tag-list-response.schema';