@floristcloud/api-lib 1.2.175 → 1.2.176

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.
@@ -200,6 +200,20 @@ exports.ERRORS = {
200
200
  CLIENT_LEGAL_PROFILE_NOT_DELETED: { code: 'CL021', message: 'Legal profile not deleted', httpCode: 500 },
201
201
  CLIENT_LEGAL_PROFILE_NOT_UPDATED: { code: 'CL022', message: 'Legal profile not updated', httpCode: 500 },
202
202
  CLIENT_LEGAL_PROFILE_ARCHIVED: { code: 'CL046', message: 'Legal profile is archived', httpCode: 409 },
203
+ // Не дождались блокировки при записи карточки (lock_timeout): идентификаторы юрлиц компании или строку клиента
204
+ // держит другая запись — импорт, балансовая операция, параллельная правка карточек.
205
+ CLIENT_LEGAL_IDENTIFIERS_LOCK_BUSY: {
206
+ code: 'CL048',
207
+ message: 'Legal requisites of this company are being changed right now, try again',
208
+ httpCode: 409,
209
+ },
210
+ // Карточку реквизитов сейчас меняет другая операция (например, синхронизация): счёт на неё не дождался (lock_timeout)
211
+ // или дождался, но карточка уже не та, по которой он собрал реквизиты.
212
+ CLIENT_LEGAL_PROFILE_LOCK_BUSY: {
213
+ code: 'CL049',
214
+ message: 'Legal profile is being changed right now, try again',
215
+ httpCode: 409,
216
+ },
203
217
  CLIENT_LEGAL_PROFILE_DEFAULT_REQUIRED: {
204
218
  code: 'CL047',
205
219
  message: 'Client must keep a default legal profile: assign another one instead',
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientExtendedListItemSchema = void 0;
4
+ const client_extended_schema_1 = require("./client-extended.schema");
5
+ // Клиент в списке: только основная карточка реквизитов. Все карточки — в карточке клиента
6
+ // (GET client/:uuid) и в списке карточек (GET client/:uuid/legal-profile): тянуть их на каждую строку списка дорого.
7
+ exports.ClientExtendedListItemSchema = client_extended_schema_1.ClientExtendedSchema.omit({ clientLegalProfileList: true });
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientExtendedListSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const client_extended_schema_1 = require("./client-extended.schema");
5
+ const client_extended_list_item_schema_1 = require("./client-extended-list-item.schema");
6
6
  exports.ClientExtendedListSchema = zod_1.z.object({
7
- clientList: client_extended_schema_1.ClientExtendedSchema.array(),
7
+ clientList: client_extended_list_item_schema_1.ClientExtendedListItemSchema.array(),
8
8
  total: zod_1.z.number(),
9
9
  });
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientLegalProfileLabelSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ // Подпись карточки реквизитов в запросах панели: необязательна, null очищает.
6
+ exports.ClientLegalProfileLabelSchema = zod_1.z.string().max(255).nullable().optional();
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientLegalProfileRequisitesSchema = void 0;
4
4
  const client_legal_profile_schema_1 = require("./client-legal-profile.schema");
5
+ const legal_identifier_value_schema_1 = require("./legal-identifier-value.schema");
5
6
  // Реквизиты карточки, которые пользователь заполняет сам: без служебных полей и флагов карточки.
6
7
  exports.ClientLegalProfileRequisitesSchema = client_legal_profile_schema_1.ClientLegalProfileSchema.omit({
7
8
  uuid: true,
@@ -12,4 +13,8 @@ exports.ClientLegalProfileRequisitesSchema = client_legal_profile_schema_1.Clien
12
13
  updatedAt: true,
13
14
  }).extend({
14
15
  correspondentAccount: client_legal_profile_schema_1.ClientLegalProfileSchema.shape.correspondentAccount.optional(),
16
+ taxId: legal_identifier_value_schema_1.LegalIdentifierValueSchema,
17
+ ogrn: legal_identifier_value_schema_1.LegalIdentifierValueSchema,
18
+ ogrnip: legal_identifier_value_schema_1.LegalIdentifierValueSchema,
19
+ edoId: legal_identifier_value_schema_1.LegalIdentifierValueSchema,
15
20
  });
@@ -5,6 +5,7 @@ const zod_1 = require("zod");
5
5
  const enum_1 = require("../../enum");
6
6
  exports.ClientLegalProfileSchema = zod_1.z.object({
7
7
  uuid: zod_1.z.uuid(),
8
+ // Подпись карточки для селекта («ООО Ромашка, Сбер»); длина ограничена в запросах создания и правки.
8
9
  label: zod_1.z.string().nullable(),
9
10
  isDefault: zod_1.z.boolean(),
10
11
  isArchived: zod_1.z.boolean(),
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateClientLegalProfileRequestSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const client_legal_profile_schema_1 = require("./client-legal-profile.schema");
5
+ const client_legal_profile_label_schema_1 = require("./client-legal-profile-label.schema");
6
6
  const client_legal_profile_requisites_schema_1 = require("./client-legal-profile-requisites.schema");
7
7
  exports.CreateClientLegalProfileRequestSchema = client_legal_profile_requisites_schema_1.ClientLegalProfileRequisitesSchema.extend({
8
- label: client_legal_profile_schema_1.ClientLegalProfileSchema.shape.label.optional(),
8
+ label: client_legal_profile_label_schema_1.ClientLegalProfileLabelSchema,
9
9
  isDefault: zod_1.z.boolean().optional(),
10
10
  });
@@ -18,7 +18,9 @@ __exportStar(require("./client.schema"), exports);
18
18
  __exportStar(require("./client-name.schema"), exports);
19
19
  __exportStar(require("./client-individual-profile.schema"), exports);
20
20
  __exportStar(require("./client-legal-profile.schema"), exports);
21
+ __exportStar(require("./client-extended-list-item.schema"), exports);
21
22
  __exportStar(require("./client-legal-profile-requisites.schema"), exports);
23
+ __exportStar(require("./client-legal-profile-label.schema"), exports);
22
24
  __exportStar(require("./create-client-legal-profile-request.schema"), exports);
23
25
  __exportStar(require("./create-client-legal-profile-response.schema"), exports);
24
26
  __exportStar(require("./update-client-legal-profile-request.schema"), exports);
@@ -43,3 +45,4 @@ __exportStar(require("./update-client-for-client-request.schema"), exports);
43
45
  __exportStar(require("./update-client-for-client-response.schema"), exports);
44
46
  __exportStar(require("./client-extended-list.schema"), exports);
45
47
  __exportStar(require("./client-extended.schema"), exports);
48
+ __exportStar(require("./legal-identifier-value.schema"), exports);
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LegalIdentifierValueSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ // Идентификатор юрлица (ИНН, ОГРН, ОГРНИП, ЭДО) из запроса — без пробелов по краям: по нему проверяется FC-194.
6
+ exports.LegalIdentifierValueSchema = zod_1.z.string().trim().nullable();
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UpdateClientLegalProfileRequestSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const client_legal_profile_schema_1 = require("./client-legal-profile.schema");
5
+ const client_legal_profile_label_schema_1 = require("./client-legal-profile-label.schema");
6
6
  const client_legal_profile_requisites_schema_1 = require("./client-legal-profile-requisites.schema");
7
7
  // Правка частичная: поле, которого нет в запросе, не меняется, null — очищает. Так карточку можно сделать
8
8
  // основной или убрать в архив, не пересылая реквизиты.
9
9
  exports.UpdateClientLegalProfileRequestSchema = client_legal_profile_requisites_schema_1.ClientLegalProfileRequisitesSchema.partial().extend({
10
- label: client_legal_profile_schema_1.ClientLegalProfileSchema.shape.label.optional(),
10
+ label: client_legal_profile_label_schema_1.ClientLegalProfileLabelSchema,
11
11
  isDefault: zod_1.z.boolean().optional(),
12
12
  isArchived: zod_1.z.boolean().optional(),
13
13
  });
package/constant/error.ts CHANGED
@@ -207,6 +207,20 @@ export const ERRORS = {
207
207
  CLIENT_LEGAL_PROFILE_NOT_DELETED: { code: 'CL021', message: 'Legal profile not deleted', httpCode: 500 },
208
208
  CLIENT_LEGAL_PROFILE_NOT_UPDATED: { code: 'CL022', message: 'Legal profile not updated', httpCode: 500 },
209
209
  CLIENT_LEGAL_PROFILE_ARCHIVED: { code: 'CL046', message: 'Legal profile is archived', httpCode: 409 },
210
+ // Не дождались блокировки при записи карточки (lock_timeout): идентификаторы юрлиц компании или строку клиента
211
+ // держит другая запись — импорт, балансовая операция, параллельная правка карточек.
212
+ CLIENT_LEGAL_IDENTIFIERS_LOCK_BUSY: {
213
+ code: 'CL048',
214
+ message: 'Legal requisites of this company are being changed right now, try again',
215
+ httpCode: 409,
216
+ },
217
+ // Карточку реквизитов сейчас меняет другая операция (например, синхронизация): счёт на неё не дождался (lock_timeout)
218
+ // или дождался, но карточка уже не та, по которой он собрал реквизиты.
219
+ CLIENT_LEGAL_PROFILE_LOCK_BUSY: {
220
+ code: 'CL049',
221
+ message: 'Legal profile is being changed right now, try again',
222
+ httpCode: 409,
223
+ },
210
224
  CLIENT_LEGAL_PROFILE_DEFAULT_REQUIRED: {
211
225
  code: 'CL047',
212
226
  message: 'Client must keep a default legal profile: assign another one instead',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floristcloud/api-lib",
3
- "version": "1.2.175",
3
+ "version": "1.2.176",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "scripts": {
@@ -0,0 +1,5 @@
1
+ import { ClientExtendedSchema } from './client-extended.schema';
2
+
3
+ // Клиент в списке: только основная карточка реквизитов. Все карточки — в карточке клиента
4
+ // (GET client/:uuid) и в списке карточек (GET client/:uuid/legal-profile): тянуть их на каждую строку списка дорого.
5
+ export const ClientExtendedListItemSchema = ClientExtendedSchema.omit({ clientLegalProfileList: true });
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { ClientExtendedSchema } from './client-extended.schema';
2
+ import { ClientExtendedListItemSchema } from './client-extended-list-item.schema';
3
3
 
4
4
  export const ClientExtendedListSchema = z.object({
5
- clientList: ClientExtendedSchema.array(),
5
+ clientList: ClientExtendedListItemSchema.array(),
6
6
  total: z.number(),
7
7
  });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+
3
+ // Подпись карточки реквизитов в запросах панели: необязательна, null очищает.
4
+ export const ClientLegalProfileLabelSchema = z.string().max(255).nullable().optional();
@@ -1,4 +1,5 @@
1
1
  import { ClientLegalProfileSchema } from './client-legal-profile.schema';
2
+ import { LegalIdentifierValueSchema } from './legal-identifier-value.schema';
2
3
 
3
4
  // Реквизиты карточки, которые пользователь заполняет сам: без служебных полей и флагов карточки.
4
5
  export const ClientLegalProfileRequisitesSchema = ClientLegalProfileSchema.omit({
@@ -10,4 +11,8 @@ export const ClientLegalProfileRequisitesSchema = ClientLegalProfileSchema.omit(
10
11
  updatedAt: true,
11
12
  }).extend({
12
13
  correspondentAccount: ClientLegalProfileSchema.shape.correspondentAccount.optional(),
14
+ taxId: LegalIdentifierValueSchema,
15
+ ogrn: LegalIdentifierValueSchema,
16
+ ogrnip: LegalIdentifierValueSchema,
17
+ edoId: LegalIdentifierValueSchema,
13
18
  });
@@ -3,6 +3,7 @@ import { ClientLegalTypeEnum } from '../../enum';
3
3
 
4
4
  export const ClientLegalProfileSchema = z.object({
5
5
  uuid: z.uuid(),
6
+ // Подпись карточки для селекта («ООО Ромашка, Сбер»); длина ограничена в запросах создания и правки.
6
7
  label: z.string().nullable(),
7
8
  isDefault: z.boolean(),
8
9
  isArchived: z.boolean(),
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { ClientLegalProfileSchema } from './client-legal-profile.schema';
2
+ import { ClientLegalProfileLabelSchema } from './client-legal-profile-label.schema';
3
3
  import { ClientLegalProfileRequisitesSchema } from './client-legal-profile-requisites.schema';
4
4
 
5
5
  export const CreateClientLegalProfileRequestSchema = ClientLegalProfileRequisitesSchema.extend({
6
- label: ClientLegalProfileSchema.shape.label.optional(),
6
+ label: ClientLegalProfileLabelSchema,
7
7
  isDefault: z.boolean().optional(),
8
8
  });
@@ -2,7 +2,9 @@ export * from './client.schema';
2
2
  export * from './client-name.schema';
3
3
  export * from './client-individual-profile.schema';
4
4
  export * from './client-legal-profile.schema';
5
+ export * from './client-extended-list-item.schema';
5
6
  export * from './client-legal-profile-requisites.schema';
7
+ export * from './client-legal-profile-label.schema';
6
8
  export * from './create-client-legal-profile-request.schema';
7
9
  export * from './create-client-legal-profile-response.schema';
8
10
  export * from './update-client-legal-profile-request.schema';
@@ -27,3 +29,4 @@ export * from './update-client-for-client-request.schema';
27
29
  export * from './update-client-for-client-response.schema';
28
30
  export * from './client-extended-list.schema';
29
31
  export * from './client-extended.schema';
32
+ export * from './legal-identifier-value.schema';
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+
3
+ // Идентификатор юрлица (ИНН, ОГРН, ОГРНИП, ЭДО) из запроса — без пробелов по краям: по нему проверяется FC-194.
4
+ export const LegalIdentifierValueSchema = z.string().trim().nullable();
@@ -1,11 +1,11 @@
1
1
  import { z } from 'zod';
2
- import { ClientLegalProfileSchema } from './client-legal-profile.schema';
2
+ import { ClientLegalProfileLabelSchema } from './client-legal-profile-label.schema';
3
3
  import { ClientLegalProfileRequisitesSchema } from './client-legal-profile-requisites.schema';
4
4
 
5
5
  // Правка частичная: поле, которого нет в запросе, не меняется, null — очищает. Так карточку можно сделать
6
6
  // основной или убрать в архив, не пересылая реквизиты.
7
7
  export const UpdateClientLegalProfileRequestSchema = ClientLegalProfileRequisitesSchema.partial().extend({
8
- label: ClientLegalProfileSchema.shape.label.optional(),
8
+ label: ClientLegalProfileLabelSchema,
9
9
  isDefault: z.boolean().optional(),
10
10
  isArchived: z.boolean().optional(),
11
11
  });