@floristcloud/api-lib 1.2.169 → 1.2.171

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.
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetOneCStockConflictListContractQuery = void 0;
4
+ const get_one_c_stock_conflict_list_request_schema_1 = require("../../../schemas/integration/one-c/get-one-c-stock-conflict-list-request.schema");
5
+ const get_one_c_stock_conflict_list_response_schema_1 = require("../../../schemas/integration/one-c/get-one-c-stock-conflict-list-response.schema");
6
+ var GetOneCStockConflictListContractQuery;
7
+ (function (GetOneCStockConflictListContractQuery) {
8
+ GetOneCStockConflictListContractQuery.RequestSchema = get_one_c_stock_conflict_list_request_schema_1.GetOneCStockConflictListRequestSchema;
9
+ GetOneCStockConflictListContractQuery.ResponseSchema = get_one_c_stock_conflict_list_response_schema_1.GetOneCStockConflictListResponseSchema;
10
+ })(GetOneCStockConflictListContractQuery || (exports.GetOneCStockConflictListContractQuery = GetOneCStockConflictListContractQuery = {}));
@@ -18,3 +18,4 @@ __exportStar(require("./connect-one-c.command"), exports);
18
18
  __exportStar(require("./rotate-one-c-password.command"), exports);
19
19
  __exportStar(require("./disconnect-one-c.command"), exports);
20
20
  __exportStar(require("./get-one-c-status.query"), exports);
21
+ __exportStar(require("./get-one-c-stock-conflict-list.query"), exports);
@@ -1644,6 +1644,15 @@ exports.ERRORS = {
1644
1644
  ONE_C_INVALID_CREDENTIALS: { code: 'OC003', message: '1C credentials are invalid', httpCode: 401 },
1645
1645
  ONE_C_INTEGRATION_DISABLED: { code: 'OC004', message: '1C integration is disabled for this company', httpCode: 409 },
1646
1646
  ONE_C_SESSION_INVALID: { code: 'OC005', message: '1C session is missing or expired', httpCode: 401 },
1647
+ ONE_C_EXCHANGE_FILE_MISSING: { code: 'OC006', message: '1C exchange file was not uploaded or has expired', httpCode: 404 },
1648
+ ONE_C_IMPORT_BUSY: { code: 'OC007', message: 'Another 1C catalog import is running for this company', httpCode: 409 },
1649
+ ONE_C_IMPORT_FAILED: { code: 'OC008', message: 'Failed to import 1C catalog', httpCode: 500 },
1650
+ ONE_C_ORDERS_EXPORT_FAILED: { code: 'OC009', message: 'Failed to export orders to 1C', httpCode: 500 },
1651
+ ONE_C_ORDERS_IMPORT_FAILED: { code: 'OC010', message: 'Failed to apply orders from 1C', httpCode: 500 },
1652
+ ONE_C_ACTOR_NOT_FOUND: { code: 'OC011', message: 'No company admin to attribute 1C changes to', httpCode: 409 },
1653
+ ONE_C_STOCK_CONFLICT_CHECK_FAILED: { code: 'OC012', message: 'Failed to check 1C stock conflicts', httpCode: 500 },
1654
+ ONE_C_STOCK_CONFLICT_FETCH_FAILED: { code: 'OC013', message: 'Failed to read 1C stock conflicts', httpCode: 500 },
1655
+ ONE_C_STOCK_CONFLICT_NOTIFY_FAILED: { code: 'OC014', message: 'Failed to notify admins about 1C stock conflicts', httpCode: 500 },
1647
1656
  // COMPANY INTEGRATION (общая запись интеграции компании)
1648
1657
  COMPANY_INTEGRATION_FETCH_FAILED: { code: 'CINT001', message: 'Failed to read company integration', httpCode: 500 },
1649
1658
  COMPANY_INTEGRATION_NOT_SAVED: { code: 'CINT002', message: 'Failed to save company integration', httpCode: 500 },
@@ -165,3 +165,4 @@ __exportStar(require("./webshop-main-display-mode.enum"), exports);
165
165
  __exportStar(require("./webshop-mode.enum"), exports);
166
166
  __exportStar(require("./write-off-report-date-basis.enum"), exports);
167
167
  __exportStar(require("./write-off-status.enum"), exports);
168
+ __exportStar(require("./one-c-stock-conflict-status.enum"), exports);
@@ -14,4 +14,6 @@ var NotificationTypeEnum;
14
14
  NotificationTypeEnum["ACCOUNT_DELETION_REQUEST_CREATED"] = "ACCOUNT_DELETION_REQUEST_CREATED";
15
15
  NotificationTypeEnum["ACCOUNT_DELETION_REQUEST_APPROVED"] = "ACCOUNT_DELETION_REQUEST_APPROVED";
16
16
  NotificationTypeEnum["ACCOUNT_DELETION_REQUEST_REJECTED"] = "ACCOUNT_DELETION_REQUEST_REJECTED";
17
+ // Админам: подтверждён конфликт «остаток 1С меньше резерва FC» или его рост (FC-560).
18
+ NotificationTypeEnum["ONE_C_STOCK_CONFLICT"] = "ONE_C_STOCK_CONFLICT";
17
19
  })(NotificationTypeEnum || (exports.NotificationTypeEnum = NotificationTypeEnum = {}));
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OneCStockConflictStatusEnum = void 0;
4
+ // Конфликт «остаток 1С меньше резерва FC» по товару (FC-560).
5
+ var OneCStockConflictStatusEnum;
6
+ (function (OneCStockConflictStatusEnum) {
7
+ // Найден одной проверкой, ещё не подтверждён: в тревожный счётчик не входит.
8
+ OneCStockConflictStatusEnum["DETECTED"] = "DETECTED";
9
+ // Подтверждён второй проверкой на свежем снимке остатка — показываем и уведомляем.
10
+ OneCStockConflictStatusEnum["OPEN"] = "OPEN";
11
+ // Сотрудник оставил недостачу как есть; рост недостачи снова проходит подтверждение.
12
+ OneCStockConflictStatusEnum["ACKNOWLEDGED"] = "ACKNOWLEDGED";
13
+ // Недостачи больше нет.
14
+ OneCStockConflictStatusEnum["RESOLVED"] = "RESOLVED";
15
+ })(OneCStockConflictStatusEnum || (exports.OneCStockConflictStatusEnum = OneCStockConflictStatusEnum = {}));
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetOneCStockConflictListRequestSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const one_c_stock_conflict_status_enum_1 = require("../../../enum/one-c-stock-conflict-status.enum");
6
+ const pagination_request_schema_1 = require("../../pagination-request.schema");
7
+ // По умолчанию — тревожные (OPEN); ACKNOWLEDGED и остальные — отдельным фильтром.
8
+ exports.GetOneCStockConflictListRequestSchema = pagination_request_schema_1.PaginationRequestSchema.extend({
9
+ status: zod_1.z.nativeEnum(one_c_stock_conflict_status_enum_1.OneCStockConflictStatusEnum).optional().default(one_c_stock_conflict_status_enum_1.OneCStockConflictStatusEnum.OPEN),
10
+ });
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetOneCStockConflictListResponseSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const one_c_stock_conflict_list_schema_1 = require("./one-c-stock-conflict-list.schema");
6
+ exports.GetOneCStockConflictListResponseSchema = zod_1.z.object({
7
+ message: zod_1.z.string().optional(),
8
+ data: one_c_stock_conflict_list_schema_1.OneCStockConflictListSchema,
9
+ });
@@ -16,3 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./get-one-c-status-response.schema"), exports);
18
18
  __exportStar(require("./one-c-status.schema"), exports);
19
+ __exportStar(require("./get-one-c-stock-conflict-list-request.schema"), exports);
20
+ __exportStar(require("./get-one-c-stock-conflict-list-response.schema"), exports);
21
+ __exportStar(require("./one-c-stock-conflict-list.schema"), exports);
22
+ __exportStar(require("./one-c-stock-conflict.schema"), exports);
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OneCStockConflictListSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const one_c_stock_conflict_schema_1 = require("./one-c-stock-conflict.schema");
6
+ exports.OneCStockConflictListSchema = zod_1.z.object({
7
+ items: zod_1.z.array(one_c_stock_conflict_schema_1.OneCStockConflictSchema),
8
+ total: zod_1.z.number().int(),
9
+ // Тревожный счётчик для глобального баннера панели — всегда по OPEN, независимо от фильтра.
10
+ openCount: zod_1.z.number().int(),
11
+ });
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OneCStockConflictSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const one_c_stock_conflict_status_enum_1 = require("../../../enum/one-c-stock-conflict-status.enum");
6
+ // Конфликт «остаток 1С меньше резерва FC» по товару. Количества — десятичные строки: остаток 1С бывает дробным.
7
+ exports.OneCStockConflictSchema = zod_1.z.object({
8
+ uuid: zod_1.z.string(),
9
+ status: zod_1.z.nativeEnum(one_c_stock_conflict_status_enum_1.OneCStockConflictStatusEnum),
10
+ productUUID: zod_1.z.string(),
11
+ productName: zod_1.z.string().nullable(),
12
+ article: zod_1.z.string().nullable(),
13
+ stock: zod_1.z.string(),
14
+ reserved: zod_1.z.number().int(),
15
+ shortage: zod_1.z.string(),
16
+ // Подтверждённая недостача OPEN: shortage выше неё — рост, ждущий подтверждения; null вне OPEN.
17
+ confirmedShortage: zod_1.z.string().nullable(),
18
+ acknowledgedShortage: zod_1.z.string().nullable(),
19
+ detectedAt: zod_1.z.string().datetime(),
20
+ confirmedAt: zod_1.z.string().datetime().nullable(),
21
+ acknowledgedAt: zod_1.z.string().datetime().nullable(),
22
+ resolvedAt: zod_1.z.string().datetime().nullable(),
23
+ updatedAt: zod_1.z.string().datetime(),
24
+ });
@@ -0,0 +1,11 @@
1
+ import type { z } from 'zod';
2
+ import { GetOneCStockConflictListRequestSchema } from '../../../schemas/integration/one-c/get-one-c-stock-conflict-list-request.schema';
3
+ import { GetOneCStockConflictListResponseSchema } from '../../../schemas/integration/one-c/get-one-c-stock-conflict-list-response.schema';
4
+
5
+ export namespace GetOneCStockConflictListContractQuery {
6
+ export const RequestSchema = GetOneCStockConflictListRequestSchema;
7
+ export type Request = z.infer<typeof RequestSchema>;
8
+
9
+ export const ResponseSchema = GetOneCStockConflictListResponseSchema;
10
+ export type Response = z.infer<typeof ResponseSchema>;
11
+ }
@@ -2,3 +2,4 @@ export * from './connect-one-c.command';
2
2
  export * from './rotate-one-c-password.command';
3
3
  export * from './disconnect-one-c.command';
4
4
  export * from './get-one-c-status.query';
5
+ export * from './get-one-c-stock-conflict-list.query';
package/constant/error.ts CHANGED
@@ -1711,6 +1711,15 @@ export const ERRORS = {
1711
1711
  ONE_C_INVALID_CREDENTIALS: { code: 'OC003', message: '1C credentials are invalid', httpCode: 401 },
1712
1712
  ONE_C_INTEGRATION_DISABLED: { code: 'OC004', message: '1C integration is disabled for this company', httpCode: 409 },
1713
1713
  ONE_C_SESSION_INVALID: { code: 'OC005', message: '1C session is missing or expired', httpCode: 401 },
1714
+ ONE_C_EXCHANGE_FILE_MISSING: { code: 'OC006', message: '1C exchange file was not uploaded or has expired', httpCode: 404 },
1715
+ ONE_C_IMPORT_BUSY: { code: 'OC007', message: 'Another 1C catalog import is running for this company', httpCode: 409 },
1716
+ ONE_C_IMPORT_FAILED: { code: 'OC008', message: 'Failed to import 1C catalog', httpCode: 500 },
1717
+ ONE_C_ORDERS_EXPORT_FAILED: { code: 'OC009', message: 'Failed to export orders to 1C', httpCode: 500 },
1718
+ ONE_C_ORDERS_IMPORT_FAILED: { code: 'OC010', message: 'Failed to apply orders from 1C', httpCode: 500 },
1719
+ ONE_C_ACTOR_NOT_FOUND: { code: 'OC011', message: 'No company admin to attribute 1C changes to', httpCode: 409 },
1720
+ ONE_C_STOCK_CONFLICT_CHECK_FAILED: { code: 'OC012', message: 'Failed to check 1C stock conflicts', httpCode: 500 },
1721
+ ONE_C_STOCK_CONFLICT_FETCH_FAILED: { code: 'OC013', message: 'Failed to read 1C stock conflicts', httpCode: 500 },
1722
+ ONE_C_STOCK_CONFLICT_NOTIFY_FAILED: { code: 'OC014', message: 'Failed to notify admins about 1C stock conflicts', httpCode: 500 },
1714
1723
 
1715
1724
  // COMPANY INTEGRATION (общая запись интеграции компании)
1716
1725
  COMPANY_INTEGRATION_FETCH_FAILED: { code: 'CINT001', message: 'Failed to read company integration', httpCode: 500 },
package/enum/index.ts CHANGED
@@ -149,3 +149,4 @@ export * from './webshop-main-display-mode.enum';
149
149
  export * from './webshop-mode.enum';
150
150
  export * from './write-off-report-date-basis.enum';
151
151
  export * from './write-off-status.enum';
152
+ export * from './one-c-stock-conflict-status.enum';
@@ -10,4 +10,6 @@ export enum NotificationTypeEnum {
10
10
  ACCOUNT_DELETION_REQUEST_CREATED = 'ACCOUNT_DELETION_REQUEST_CREATED',
11
11
  ACCOUNT_DELETION_REQUEST_APPROVED = 'ACCOUNT_DELETION_REQUEST_APPROVED',
12
12
  ACCOUNT_DELETION_REQUEST_REJECTED = 'ACCOUNT_DELETION_REQUEST_REJECTED',
13
+ // Админам: подтверждён конфликт «остаток 1С меньше резерва FC» или его рост (FC-560).
14
+ ONE_C_STOCK_CONFLICT = 'ONE_C_STOCK_CONFLICT',
13
15
  }
@@ -0,0 +1,11 @@
1
+ // Конфликт «остаток 1С меньше резерва FC» по товару (FC-560).
2
+ export enum OneCStockConflictStatusEnum {
3
+ // Найден одной проверкой, ещё не подтверждён: в тревожный счётчик не входит.
4
+ DETECTED = 'DETECTED',
5
+ // Подтверждён второй проверкой на свежем снимке остатка — показываем и уведомляем.
6
+ OPEN = 'OPEN',
7
+ // Сотрудник оставил недостачу как есть; рост недостачи снова проходит подтверждение.
8
+ ACKNOWLEDGED = 'ACKNOWLEDGED',
9
+ // Недостачи больше нет.
10
+ RESOLVED = 'RESOLVED',
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floristcloud/api-lib",
3
- "version": "1.2.169",
3
+ "version": "1.2.171",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "scripts": {
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { OneCStockConflictStatusEnum } from '../../../enum/one-c-stock-conflict-status.enum';
3
+ import { PaginationRequestSchema } from '../../pagination-request.schema';
4
+
5
+ // По умолчанию — тревожные (OPEN); ACKNOWLEDGED и остальные — отдельным фильтром.
6
+ export const GetOneCStockConflictListRequestSchema = PaginationRequestSchema.extend({
7
+ status: z.nativeEnum(OneCStockConflictStatusEnum).optional().default(OneCStockConflictStatusEnum.OPEN),
8
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { OneCStockConflictListSchema } from './one-c-stock-conflict-list.schema';
3
+
4
+ export const GetOneCStockConflictListResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ data: OneCStockConflictListSchema,
7
+ });
@@ -1,2 +1,6 @@
1
1
  export * from './get-one-c-status-response.schema';
2
2
  export * from './one-c-status.schema';
3
+ export * from './get-one-c-stock-conflict-list-request.schema';
4
+ export * from './get-one-c-stock-conflict-list-response.schema';
5
+ export * from './one-c-stock-conflict-list.schema';
6
+ export * from './one-c-stock-conflict.schema';
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { OneCStockConflictSchema } from './one-c-stock-conflict.schema';
3
+
4
+ export const OneCStockConflictListSchema = z.object({
5
+ items: z.array(OneCStockConflictSchema),
6
+ total: z.number().int(),
7
+ // Тревожный счётчик для глобального баннера панели — всегда по OPEN, независимо от фильтра.
8
+ openCount: z.number().int(),
9
+ });
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import { OneCStockConflictStatusEnum } from '../../../enum/one-c-stock-conflict-status.enum';
3
+
4
+ // Конфликт «остаток 1С меньше резерва FC» по товару. Количества — десятичные строки: остаток 1С бывает дробным.
5
+ export const OneCStockConflictSchema = z.object({
6
+ uuid: z.string(),
7
+ status: z.nativeEnum(OneCStockConflictStatusEnum),
8
+ productUUID: z.string(),
9
+ productName: z.string().nullable(),
10
+ article: z.string().nullable(),
11
+ stock: z.string(),
12
+ reserved: z.number().int(),
13
+ shortage: z.string(),
14
+ // Подтверждённая недостача OPEN: shortage выше неё — рост, ждущий подтверждения; null вне OPEN.
15
+ confirmedShortage: z.string().nullable(),
16
+ acknowledgedShortage: z.string().nullable(),
17
+ detectedAt: z.string().datetime(),
18
+ confirmedAt: z.string().datetime().nullable(),
19
+ acknowledgedAt: z.string().datetime().nullable(),
20
+ resolvedAt: z.string().datetime().nullable(),
21
+ updatedAt: z.string().datetime(),
22
+ });