@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
@@ -6,7 +6,7 @@ export const UpdateGroupProductUpdateBatchRequestDataSchema = z.object({
6
6
  name: z.string(),
7
7
  categoryUUID: z.string(),
8
8
  price: MoneySchema,
9
- costPrice: MoneySchema,
9
+ costPrice: MoneySchema.nullable(),
10
10
  color: z.string().nullable(),
11
11
  size: z.string().nullable(),
12
12
  multiplicity: z.coerce.number(),
@@ -12,7 +12,7 @@ export const ProductSchema = z.object({
12
12
  balance: z.number(),
13
13
  quantity: z.number(),
14
14
  price: MoneySchema,
15
- costPrice: MoneySchema,
15
+ costPrice: MoneySchema.nullable(),
16
16
  multiplicity: z.number(),
17
17
  isOpen: z.boolean(),
18
18
 
@@ -9,7 +9,7 @@ export const UpdateProductRequestSchema = z.object({
9
9
  balance: z.number(),
10
10
  quantity: z.number(),
11
11
  price: MoneySchema,
12
- costPrice: MoneySchema,
12
+ costPrice: MoneySchema.nullish(),
13
13
  multiplicity: z.number(),
14
14
  isOpen: z.coerce.boolean(),
15
15
 
@@ -20,7 +20,7 @@ export const UpdateProductRequestSchema = z.object({
20
20
  size: z.string().nullable(),
21
21
  size2: z.string().nullable(),
22
22
  size3: z.string().nullable(),
23
- invoicePrice: MoneySchema.nullable(),
23
+ invoicePrice: MoneySchema.nullish(),
24
24
  invoiceNumber: z.string().nullable(),
25
25
  imageUUID: z.string().nullable(),
26
26
  country: z.string().nullable(),
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export const ValidateSessionS2SRequestSchema = z.object({
3
+ sessionToken: z.string(),
4
+ });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ import { ValidatedSessionUserSchema } from './validated-session-user.schema';
3
+ export const ValidateSessionS2SResponseSchema = z.object({ data: ValidatedSessionUserSchema });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export const ValidateWsTicketS2SRequestSchema = z.object({
3
+ ticket: z.string(),
4
+ });
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { UserRoleEnum, UserStatusEnum } from '../../enum';
3
+ export const ValidatedSessionUserSchema = z.object({
4
+ userUUID: z.string(),
5
+ companyUUID: z.string(),
6
+ email: z.string().nullable(),
7
+ phone: z.string().nullable(),
8
+ roles: z.array(z.nativeEnum(UserRoleEnum)),
9
+ status: z.nativeEnum(UserStatusEnum),
10
+ isGlobal: z.boolean(),
11
+ type: z.string().nullable(),
12
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { UserRoleEnum } from '../../enum/userRole.enum';
3
+
4
+ export const AllowedUserRoleSchema = z
5
+ .nativeEnum(UserRoleEnum)
6
+ .refine(role => role !== UserRoleEnum.BUYER, { message: 'validation.allowedRoles' });
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import { PasswordSchema } from '../auth/password.schema';
3
+ import { UserRoleEnum } from '../../enum/userRole.enum';
4
+
5
+ export const CreateUserByClientIdDataSchema = z
6
+ .object({
7
+ password: PasswordSchema,
8
+ name: z.string(),
9
+ email: z.email().toLowerCase().nullable().optional(),
10
+ phone: z.string().nullable().optional(),
11
+ roles: z.array(z.nativeEnum(UserRoleEnum)).optional().default([UserRoleEnum.BUYER]),
12
+ })
13
+ .refine(data => data.email || data.phone, { message: 'validation.emailOrPhoneRequired' });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { CreateUserByClientIdDataSchema } from './create-user-by-client-id-data.schema';
3
+
4
+ export const CreateUserByClientIdRequestSchema = z.object({ user: CreateUserByClientIdDataSchema, clientUuid: z.uuid() });
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from './user.schema';
3
+
4
+ export const CreateUserByClientIdResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ code: z.string().optional(),
7
+ i18nKey: z.string().optional(),
8
+ data: UserSchema,
9
+ });
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from './user.schema';
3
+ import { PasswordSchema } from '../auth/password.schema';
4
+ import { AllowedUserRoleSchema } from './allowed-user-role.schema';
5
+
6
+ export const CreateUserForCompanyRequestSchema = UserSchema.pick({ email: true, phone: true, name: true }).extend({
7
+ roles: z.array(AllowedUserRoleSchema),
8
+ password: PasswordSchema,
9
+ });
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from './user.schema';
3
+
4
+ export const CreateUserForCompanyResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ code: z.string().optional(),
7
+ i18nKey: z.string().optional(),
8
+ data: UserSchema,
9
+ });
@@ -0,0 +1,13 @@
1
+ import { UserSchema } from './user.schema';
2
+ import { PasswordSchema } from '../auth/password.schema';
3
+
4
+ export 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
+ }).extend({ password: PasswordSchema });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from './user.schema';
3
+
4
+ export const CreateUserGlobalResponseSchema = z.object({ message: z.string().optional(), data: UserSchema });
@@ -0,0 +1,12 @@
1
+ import { PasswordSchema } from '../auth/password.schema';
2
+ import { z } from 'zod';
3
+ import { UserRoleEnum, UserStatusEnum } from '../../enum';
4
+
5
+ export const CreateUserSchema = z.object({
6
+ name: z.string(),
7
+ email: z.string(),
8
+ phone: z.string(),
9
+ password: PasswordSchema,
10
+ roles: z.array(z.nativeEnum(UserRoleEnum)).default([UserRoleEnum.BUYER]),
11
+ status: z.nativeEnum(UserStatusEnum).default(UserStatusEnum.INACTIVE),
12
+ });
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from './user.schema';
3
+ import { EffectivePermissionsSchema } from '../access-policy/access-policy.schema';
4
+
5
+ export const GetMeDataSchema = z.object({ user: UserSchema, permissions: EffectivePermissionsSchema });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { GetMeDataSchema } from './get-me-data.schema';
3
+
4
+ export const GetMeResponseSchema = z.object({ message: z.string().optional(), data: GetMeDataSchema });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from './user.schema';
3
+
4
+ export const GetUserDataSchema = z.object({ user: UserSchema });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { GetUserDataSchema } from './get-user-data.schema';
3
+
4
+ export const GetUserResponseSchema = z.object({ data: GetUserDataSchema });
@@ -1,3 +1,18 @@
1
1
  export * from './user.schema';
2
2
  export * from './user-contact-for-client.schema';
3
3
  export * from './user-name.schema';
4
+ export * from './create-user.schema';
5
+ export * from './update-password-by-user-request.schema';
6
+ export * from './update-password-by-user-response.schema';
7
+ export * from './create-user-by-client-id-data.schema';
8
+ export * from './create-user-by-client-id-request.schema';
9
+ export * from './create-user-by-client-id-response.schema';
10
+ export * from './allowed-user-role.schema';
11
+ export * from './create-user-for-company-request.schema';
12
+ export * from './create-user-for-company-response.schema';
13
+ export * from './create-user-global-request.schema';
14
+ export * from './create-user-global-response.schema';
15
+ export * from './get-me-data.schema';
16
+ export * from './get-me-response.schema';
17
+ export * from './get-user-data.schema';
18
+ export * from './get-user-response.schema';
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { PasswordSchema } from '../auth/password.schema';
3
+
4
+ export const UpdatePasswordByUserRequestSchema = z.object({
5
+ password: PasswordSchema,
6
+ currentPassword: z.string().optional(),
7
+ });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+
3
+ export const UpdatePasswordByUserResponseSchema = z.object({ message: z.string() });
@@ -8,22 +8,11 @@ export const UserSchema = z.object({
8
8
  email: z.string().nullable(),
9
9
  phone: z.string().nullable(),
10
10
  roles: z.array(z.nativeEnum(UserRoleEnum)),
11
- companyUUID: z.string(),
11
+ companyUUID: z.string().nullable(),
12
12
  status: z.nativeEnum(UserStatusEnum),
13
13
  isGlobal: z.boolean(),
14
- restoreTokenHash: z.string().nullable(),
15
- passwordHash: z.string(),
16
14
  deletedAt: z.date().nullable(),
17
15
  createdAt: z.date(),
18
16
  updatedAt: z.date(),
19
17
  messengerProfiles: z.array(UserMessengerProfileSchema).optional(),
20
18
  });
21
-
22
- export const CreateUserSchema = z.object({
23
- name: z.string(),
24
- email: z.string(),
25
- phone: z.string(),
26
- password: z.string(),
27
- roles: z.array(z.nativeEnum(UserRoleEnum)).default([UserRoleEnum.BUYER]),
28
- status: z.nativeEnum(UserStatusEnum).default(UserStatusEnum.INACTIVE),
29
- });
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ import { CreateWorkSessionSchema } from './create-work-session.schema';
3
+ export const CreateManyWorkSessionRequestSchema = z.object({
4
+ data: z.array(CreateWorkSessionSchema).min(1, { message: 'validation.atLeastOneItem' }),
5
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { WorkSessionSchema } from './work-session.schema';
3
+ export const CreateManyWorkSessionResponseSchema = z.object({
4
+ message: z.string().optional(),
5
+ data: z.array(WorkSessionSchema),
6
+ });
@@ -0,0 +1,5 @@
1
+ import { WorkSessionSchema } from './work-session.schema';
2
+ import { WorkSessionDateSchema } from './work-session-date.schema';
3
+ export const CreateWorkSessionForEmployeeSchema = WorkSessionSchema.pick({
4
+ date: true,
5
+ }).extend({ date: WorkSessionDateSchema });
@@ -0,0 +1,15 @@
1
+ import { WorkSessionSchema } from './work-session.schema';
2
+ import { WorkSessionDateSchema } from './work-session-date.schema';
3
+ export const CreateWorkSessionSchema = WorkSessionSchema.omit({
4
+ uuid: true,
5
+ actualWorkHours: true,
6
+ checkInIp: true,
7
+ createdAt: true,
8
+ updatedAt: true,
9
+ companyUUID: true,
10
+ })
11
+ .extend({ date: WorkSessionDateSchema, checkInAt: WorkSessionDateSchema, checkOutAt: WorkSessionDateSchema.nullable() })
12
+ .refine(value => value.checkOutAt === null || value.checkOutAt >= value.checkInAt, {
13
+ message: 'validation.dateRange',
14
+ path: ['checkOutAt'],
15
+ });
@@ -0,0 +1,24 @@
1
+ import { ValidationI18nKey } from '../../constant/validation-i18n-key';
2
+ import { WORK_SESSION_REPORT_LIMITS } from '../../constant/work-session-report-limits.constant';
3
+ import { z } from 'zod';
4
+ import { dateRangeCheck } from '../../helpers/date.helper';
5
+ import { WorkSessionDateSchema } from './work-session-date.schema';
6
+ export const ExportOvertimeRequestSchema = z
7
+ .object({
8
+ startDate: WorkSessionDateSchema,
9
+ endDate: WorkSessionDateSchema,
10
+ userUUIDs: z.array(z.string().uuid()).optional(),
11
+ })
12
+ .refine(value => dateRangeCheck(value.startDate, value.endDate), {
13
+ message: ValidationI18nKey.dateRange,
14
+ path: ['endDate', 'startDate'],
15
+ })
16
+ .refine(
17
+ value =>
18
+ value.endDate.getTime() - value.startDate.getTime() <=
19
+ WORK_SESSION_REPORT_LIMITS.maxPeriodDays * WORK_SESSION_REPORT_LIMITS.millisecondsPerDay,
20
+ {
21
+ message: ValidationI18nKey.reportPeriodMax,
22
+ path: ['endDate', 'startDate'],
23
+ },
24
+ );
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ import { OvertimeFileSchema } from './overtime-file.schema';
3
+ export const ExportOvertimeResponseSchema = z.object({ data: OvertimeFileSchema });
@@ -0,0 +1,2 @@
1
+ import { z } from 'zod';
2
+ export const OvertimeFileSchema = z.object({ fileUrl: z.string(), fileKey: z.string() });
@@ -0,0 +1,18 @@
1
+ import { WorkSessionSchema } from './work-session.schema';
2
+ import { WorkSessionDateSchema } from './work-session-date.schema';
3
+ export const UpdateWorkSessionSchema = WorkSessionSchema.pick({
4
+ date: true,
5
+ checkInAt: true,
6
+ checkOutAt: true,
7
+ actualWorkHours: true,
8
+ })
9
+ .partial()
10
+ .extend({
11
+ date: WorkSessionDateSchema.optional(),
12
+ checkInAt: WorkSessionDateSchema.optional(),
13
+ checkOutAt: WorkSessionDateSchema.nullable().optional(),
14
+ })
15
+ .refine(value => !value.checkInAt || !value.checkOutAt || value.checkOutAt >= value.checkInAt, {
16
+ message: 'validation.dateRange',
17
+ path: ['checkOutAt'],
18
+ });
@@ -0,0 +1,14 @@
1
+ import { ValidationI18nKey } from '../../constant/validation-i18n-key';
2
+ import { z } from 'zod';
3
+
4
+ export const WorkSessionDateSchema = z.coerce
5
+ .date()
6
+ .min(new Date('2000-01-01T00:00:00.000Z'), { message: ValidationI18nKey.dateRange })
7
+ .refine(
8
+ value => {
9
+ const latest = new Date();
10
+ latest.setUTCFullYear(latest.getUTCFullYear() + 1);
11
+ return value <= latest;
12
+ },
13
+ { message: ValidationI18nKey.dateRange },
14
+ );
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { WorkSessionExtendedSchema } from './work-session-extended.schema';
3
+ export const WorkSessionExtendedListSchema = z.object({
4
+ list: z.array(WorkSessionExtendedSchema),
5
+ total: z.number(),
6
+ });
@@ -0,0 +1,5 @@
1
+ import { WorkSessionSchema } from './work-session.schema';
2
+ import { UserSchema } from '../user/user.schema';
3
+ export const WorkSessionExtendedSchema = WorkSessionSchema.extend({
4
+ user: UserSchema,
5
+ });
@@ -1,5 +1,4 @@
1
1
  import { z } from 'zod';
2
- import { UserSchema } from '../user/user.schema';
3
2
 
4
3
  export const WorkSessionSchema = z.object({
5
4
  uuid: z.string(),
@@ -13,32 +12,3 @@ export const WorkSessionSchema = z.object({
13
12
  createdAt: z.coerce.date(),
14
13
  updatedAt: z.coerce.date(),
15
14
  });
16
-
17
- export const WorkSessionExtendedSchema = WorkSessionSchema.extend({
18
- user: UserSchema.omit({ passwordHash: true, restoreTokenHash: true }),
19
- });
20
-
21
- export const WorkSessionExtendedListSchema = z.object({
22
- list: z.array(WorkSessionExtendedSchema),
23
- total: z.number(),
24
- });
25
-
26
- export const CreateWorkSessionSchema = WorkSessionSchema.omit({
27
- uuid: true,
28
- actualWorkHours: true,
29
- checkInIp: true,
30
- createdAt: true,
31
- updatedAt: true,
32
- companyUUID: true,
33
- });
34
-
35
- export const CreateWorkSessionForEmployeeSchema = WorkSessionSchema.pick({
36
- date: true,
37
- });
38
-
39
- export const UpdateWorkSessionSchema = WorkSessionSchema.pick({
40
- date: true,
41
- checkInAt: true,
42
- checkOutAt: true,
43
- actualWorkHours: true,
44
- }).partial();