@torrow/sdk-client 0.13.0 → 0.14.0

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.
package/dist/index.d.ts CHANGED
@@ -133,191 +133,6 @@ type TorrowOptions = {
133
133
  signal?: AbortSignal;
134
134
  };
135
135
 
136
- /** Причина отказа SDK; сама по себе не определяет результат записи. */
137
- declare enum TorrowSdkErrorCategory {
138
- /** Неверные параметры операции. */ InvalidInput = "InvalidInput",
139
- /** Операция недопустима в текущем состоянии. */ InvalidState = "InvalidState",
140
- /** Подтверждённый отказ доступа. */ AccessDenied = "AccessDenied",
141
- /** Недостаточно данных для безопасного выполнения. */ InsufficientData = "InsufficientData",
142
- /** Ответ не соответствует ожидаемой структуре. */ InvalidResponse = "InvalidResponse",
143
- /** Доказанное несовпадение версии. */ VersionConflict = "VersionConflict",
144
- /** Требуется аутентификация. */ AuthenticationRequired = "AuthenticationRequired",
145
- /** Способ выполнения не поддерживается. */ UnsupportedOperation = "UnsupportedOperation",
146
- /** Сервер ограничил частоту запросов. */ RateLimited = "RateLimited",
147
- /** Прочий HTTP-отказ. */ HttpFailure = "HttpFailure",
148
- /** Распознанный сбой транспорта. */ TransportFailure = "TransportFailure",
149
- /** Сбой сохранения или загрузки состояния. */ StorageFailure = "StorageFailure",
150
- /** Запрос отменён. */ Cancelled = "Cancelled",
151
- /** Причина зависимости не распознана. */ Unknown = "Unknown"
152
- }
153
- /** Начало вызова fetch конкретного запроса, без гарантии доставки. */
154
- declare enum TorrowSdkRequestState {
155
- /** fetch ещё не вызван. */ NotStarted = "NotStarted",
156
- /** Начат вызов fetch. */ Started = "Started"
157
- }
158
- /** Область описанного предметного изменения. */
159
- declare enum TorrowSdkEffectArea {
160
- /** Изменение на сервере. */ Remote = "Remote",
161
- /** Изменение памяти текущей сессии. */ SessionMemory = "SessionMemory",
162
- /** Изменение постоянного хранилища. */ Storage = "Storage"
163
- }
164
- /** Доказанность отдельного изменения. */
165
- declare enum TorrowSdkEffectState {
166
- /** Доказано отсутствие изменения. */ NotApplied = "NotApplied",
167
- /** Выполнение изменения подтверждено. */ Applied = "Applied",
168
- /** Результат изменения неизвестен. */ Unknown = "Unknown"
169
- }
170
- /** Домен предметного уточнения ошибки. */
171
- declare enum TorrowSdkErrorDomain {
172
- /** Чтение метаданных необязательных файлов. */ FileMetadata = "FileMetadata",
173
- /** Частичное обновление item через GET и CAS PUT. */ ItemPatch = "ItemPatch",
174
- /** Настройки поведения услуг и ресурсов. */ BehaviorSettings = "BehaviorSettings",
175
- /** Пошаговый OTP. */ Otp = "Otp",
176
- /** Сессия токенов и составной вход. */ AuthSession = "AuthSession"
177
- }
178
- /** Причины недостаточных данных для чтения метаданных файла. */
179
- declare enum FileMetadataErrorReason {
180
- /** Полнота карточки не подтверждена. */ ContentTypeUnavailable = "ContentTypeUnavailable",
181
- /** Подписка не позволяет получить полную карточку. */ SubscriptionIsNotValid = "SubscriptionIsNotValid",
182
- /** Ссылка на файл не содержит ID. */ FileIdUnavailable = "FileIdUnavailable",
183
- /** Подписка в полной коллекции не содержит ID. */ SubscriptionIdUnavailable = "SubscriptionIdUnavailable"
184
- }
185
- /** Имена составных операций чтения метаданных. */
186
- declare enum FileMetadataOperation {
187
- /** Изображение начальной подписки программы лояльности. */ GetInitialSubscriptionImageInfo = "getInitialSubscriptionImageInfo",
188
- /** Аватар элемента. */ GetImageInfo = "getImageInfo",
189
- /** Вложение заметки. */ GetFileInfo = "getFileInfo",
190
- /** Фотография контакта. */ GetPhotoInfo = "getPhotoInfo",
191
- /** Изображение выбранной подписки карты. */ GetSubscriptionImageInfo = "getSubscriptionImageInfo"
192
- }
193
- /** Локальные стадии чтения метаданных. */
194
- declare enum FileMetadataFailureAt {
195
- /** Проверка аргументов. */ ValidateInput = "ValidateInput",
196
- /** Чтение карточки. */ ReadItem = "ReadItem",
197
- /** Проверка полной карточки и связи. */ ValidateItem = "ValidateItem",
198
- /** Чтение метаданных. */ ReadMetadata = "ReadMetadata",
199
- /** Проверка ответа метаданных. */ ValidateMetadata = "ValidateMetadata"
200
- }
201
- /** Безопасное предметное уточнение чтения файла. */
202
- interface FileMetadataErrorDetail {
203
- /** Домен чтения метаданных. */ readonly domain: TorrowSdkErrorDomain.FileMetadata;
204
- /** Дополнительная причина недостаточности данных. */ readonly reason?: FileMetadataErrorReason;
205
- }
206
- /** Причина отказа OTP. */
207
- declare enum OtpErrorReason {
208
- /** Неверное продолжение. */ InvalidChallenge = "InvalidChallenge",
209
- /** Метод не поддержан приложением. */ UnsupportedMethod = "UnsupportedMethod",
210
- /** Отсутствует заголовок авторизации. */ AuthHeaderMissing = "AuthHeaderMissing",
211
- /** Исчерпан лимит отправки. */ CodeRequestLimitExceeded = "CodeRequestLimitExceeded"
212
- }
213
- /** Причина отказа сессии. */
214
- declare enum AuthSessionErrorReason {
215
- /** Сессия ещё не готова к выдаче токенов. */ SessionNotReady = "SessionNotReady",
216
- /** Ошибка пользовательского callback. */ CallbackFailed = "CallbackFailed"
217
- }
218
- /** Шаги изменения настроек. */
219
- declare enum BehaviorSettingsEffectStep {
220
- /** Целевая запись настроек. */ Write = "Write"
221
- }
222
- /** Шаг частичного изменения основного документа; не транзакция внутренних действий сервера. */
223
- declare enum ItemPatchEffectStep {
224
- /** Запись основного документа элемента. */ Write = "Write"
225
- }
226
- /** Шаги изменения сессии. */
227
- declare enum AuthSessionEffectStep {
228
- /** Создание серверного продолжения входа по ссылке. */ CreateAuthSession = "CreateAuthSession",
229
- /** Закрытие локальной сессии. */ CloseSession = "CloseSession",
230
- /** Выдача токенов. */ IssueTokens = "IssueTokens",
231
- /** Обновление токенов. */ RefreshTokens = "RefreshTokens",
232
- /** Отзыв токенов. */ RevokeTokens = "RevokeTokens",
233
- /** Отправка кода или ссылки. */ SendCode = "SendCode",
234
- /** Замена токенов в памяти. */ SetTokens = "SetTokens",
235
- /** Очистка токенов в памяти. */ ClearTokens = "ClearTokens",
236
- /** Сохранение токенов. */ SaveTokens = "SaveTokens",
237
- /** Очистка хранилища. */ ClearStorage = "ClearStorage"
238
- }
239
- /** Безопасное описание отдельного изменения; не журнал всех вызовов. */
240
- interface TorrowSdkEffect {
241
- /** Область изменения. */ readonly area: TorrowSdkEffectArea;
242
- /** Предметный шаг выбранного метода. */ readonly step: BehaviorSettingsEffectStep | AuthSessionEffectStep | ItemPatchEffectStep;
243
- /** Доказанность результата шага. */ readonly state: TorrowSdkEffectState;
244
- }
245
- /** Предметное уточнение настроек. */
246
- interface BehaviorSettingsErrorDetail {
247
- /** Область ошибки настроек. */ readonly domain: TorrowSdkErrorDomain.BehaviorSettings;
248
- /** У настроек нет дополнительной причины; доступ к общему optional reason остаётся типизированным. */ readonly reason?: never;
249
- }
250
- /** Безопасное уточнение частичного изменения элемента. */
251
- interface ItemPatchErrorDetail {
252
- /** Область ошибки составной операции patch. */ readonly domain: TorrowSdkErrorDomain.ItemPatch;
253
- /** Достаточно общей категории; дополнительная причина не вводится. */ readonly reason?: never;
254
- }
255
- /** Предметное уточнение OTP; секреты здесь не размещаются. */
256
- interface OtpErrorDetail {
257
- /** Область ошибки OTP. */ readonly domain: TorrowSdkErrorDomain.Otp;
258
- /** Дополнительное уточнение; отсутствие означает, что достаточно category. */ readonly reason?: OtpErrorReason;
259
- /** Проверенное время следующей отправки, Unix milliseconds; отсутствует без подсказки. */ readonly nextSendAtMs?: number;
260
- /** Проверенная длительность ожидания в секундах. */ readonly retryAfterSeconds?: number;
261
- }
262
- /** Предметное уточнение сессии. */
263
- interface AuthSessionErrorDetail {
264
- /** Область ошибки сессии. */ readonly domain: TorrowSdkErrorDomain.AuthSession;
265
- /** Дополнительное уточнение; отсутствие означает, что достаточно category. */ readonly reason?: AuthSessionErrorReason;
266
- }
267
- /** Поддержанные предметные детали ошибки. */
268
- type TorrowSdkErrorDetail = BehaviorSettingsErrorDetail | ItemPatchErrorDetail | OtpErrorDetail | AuthSessionErrorDetail | FileMetadataErrorDetail;
269
- /** Безопасные HTTP-метаданные без тела и URL. */
270
- interface TorrowSdkHttpDetails {
271
- /** Статус полученного ответа. */ readonly status: number;
272
- /** Код API; числовой wire-код приводится к строке. */ readonly apiCode?: string;
273
- /** Известное SDK кодовое имя; произвольные серверные строки исключены. */ readonly apiErrorName?: string;
274
- /** Идентификатор запроса для поддержки. */ readonly requestId?: string;
275
- /** Идентификатор трассировки сервера. */ readonly traceIdentifier?: string;
276
- }
277
- /** Чувствительная диагностика; доступна только по явному запросу. */
278
- interface TorrowSdkSensitiveDetails {
279
- /** Исходное исключение зависимости, включая его исходный стек. */ readonly cause?: unknown;
280
- /** Исходное тело ответа. */ readonly body?: unknown;
281
- /** Полный URL запроса, который может содержать токены. */ readonly url?: string;
282
- /** Данные явного отзыва OTP-токенов. */ readonly cleanup?: {
283
- /** Секрет отзыва; не логировать. */ readonly refreshToken: string;
284
- };
285
- }
286
- /** Безопасный снимок ошибки. Отсутствие effects не доказывает отсутствие изменений. */
287
- interface TorrowSdkErrorInfo {
288
- /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
289
- /** Необязательное пояснение для человека, не для ветвления. Передающий текст отвечает за его безопасность. */ readonly publicMessage?: string;
290
- /** Метаданные HTTP, если они известны. */ readonly http?: TorrowSdkHttpDetails;
291
- /** Предметное уточнение выбранного домена. */ readonly detail?: TorrowSdkErrorDetail;
292
- /** Начало fetch соответствующего запроса. */ readonly request?: TorrowSdkRequestState;
293
- /** Стабильное имя выбранной составной операции, без аргументов. */ readonly operation?: string;
294
- /** Локальная стадия сбоя, без пользовательских данных. */ readonly failureAt?: string;
295
- /** Только описанные изменения данной операции; отсутствие означает отсутствие сведений. */ readonly effects?: readonly TorrowSdkEffect[];
296
- }
297
- /** Параметры создания ошибки; безопасные поля унаследованы из TorrowSdkErrorInfo. */
298
- interface TorrowSdkErrorInit extends TorrowSdkErrorInfo {
299
- /** Исходные данные, исключённые из стандартной диагностики. */ readonly sensitive?: TorrowSdkSensitiveDetails;
300
- }
301
- /** Единая ошибка сетевых и выбранных предметных операций SDK. */
302
- declare class TorrowSdkError extends Error implements TorrowSdkErrorInfo {
303
- #private;
304
- /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
305
- /** Пояснение без изменения исходной строки: до 512 UTF-16 единиц, не пустое после trim; иначе undefined. */ readonly publicMessage?: string;
306
- /** Безопасные метаданные ответа. */ readonly http?: TorrowSdkHttpDetails;
307
- /** Неизменяемое предметное уточнение. */ readonly detail?: TorrowSdkErrorDetail;
308
- /** Начало fetch; не доставка. */ readonly request?: TorrowSdkRequestState;
309
- /** Имя составной операции без пользовательских значений. */ readonly operation?: string;
310
- /** Стадия отказа без аргументов. */ readonly failureAt?: string;
311
- /** Неизменяемые сведения об описанных изменениях. */ readonly effects?: readonly TorrowSdkEffect[];
312
- constructor(init: TorrowSdkErrorInit);
313
- /** Безопасный снимок для обычной сериализации и диагностики. */
314
- toJSON(): TorrowSdkErrorInfo;
315
- /** Явный доступ к секретной диагностике; вызывающий код отвечает за её защиту. */
316
- getSensitiveDetails(): TorrowSdkSensitiveDetails;
317
- /** Новый снимок для составной операции; исходная ошибка не изменяется. */
318
- withContext(context: Partial<TorrowSdkErrorInfo>): TorrowSdkError;
319
- }
320
-
321
136
  /**
322
137
  * This file was auto-generated by openapi-typescript.
323
138
  * Do not make direct changes to the file.
@@ -37524,6 +37339,197 @@ interface components {
37524
37339
  pathItems: never;
37525
37340
  }
37526
37341
 
37342
+ /**
37343
+ * Единый алиас на `components["schemas"]`.
37344
+ * Локальные `type Schemas = …` в разных модулях при склейке `index.d.ts` (tsup) дают коллизии имён и суффиксы `$1`, `$2`, …
37345
+ */
37346
+ type OpenApiSchemas = components["schemas"];
37347
+
37348
+ /** Причина отказа SDK; сама по себе не определяет результат записи. */
37349
+ declare enum TorrowSdkErrorCategory {
37350
+ /** Неверные параметры операции. */ InvalidInput = "InvalidInput",
37351
+ /** Операция недопустима в текущем состоянии. */ InvalidState = "InvalidState",
37352
+ /** Подтверждённый отказ доступа. */ AccessDenied = "AccessDenied",
37353
+ /** Недостаточно данных для безопасного выполнения. */ InsufficientData = "InsufficientData",
37354
+ /** Ответ не соответствует ожидаемой структуре. */ InvalidResponse = "InvalidResponse",
37355
+ /** Доказанное несовпадение версии. */ VersionConflict = "VersionConflict",
37356
+ /** Требуется аутентификация. */ AuthenticationRequired = "AuthenticationRequired",
37357
+ /** Способ выполнения не поддерживается. */ UnsupportedOperation = "UnsupportedOperation",
37358
+ /** Сервер ограничил частоту запросов. */ RateLimited = "RateLimited",
37359
+ /** Прочий HTTP-отказ. */ HttpFailure = "HttpFailure",
37360
+ /** Распознанный сбой транспорта. */ TransportFailure = "TransportFailure",
37361
+ /** Сбой сохранения или загрузки состояния. */ StorageFailure = "StorageFailure",
37362
+ /** Запрос отменён. */ Cancelled = "Cancelled",
37363
+ /** Причина зависимости не распознана. */ Unknown = "Unknown"
37364
+ }
37365
+ /** Начало вызова fetch конкретного запроса, без гарантии доставки. */
37366
+ declare enum TorrowSdkRequestState {
37367
+ /** fetch ещё не вызван. */ NotStarted = "NotStarted",
37368
+ /** Начат вызов fetch. */ Started = "Started"
37369
+ }
37370
+ /** Область описанного предметного изменения. */
37371
+ declare enum TorrowSdkEffectArea {
37372
+ /** Изменение на сервере. */ Remote = "Remote",
37373
+ /** Изменение памяти текущей сессии. */ SessionMemory = "SessionMemory",
37374
+ /** Изменение постоянного хранилища. */ Storage = "Storage"
37375
+ }
37376
+ /** Доказанность отдельного изменения. */
37377
+ declare enum TorrowSdkEffectState {
37378
+ /** Доказано отсутствие изменения. */ NotApplied = "NotApplied",
37379
+ /** Выполнение изменения подтверждено. */ Applied = "Applied",
37380
+ /** Результат изменения неизвестен. */ Unknown = "Unknown"
37381
+ }
37382
+ /** Домен предметного уточнения ошибки. */
37383
+ declare enum TorrowSdkErrorDomain {
37384
+ /** Чтение метаданных необязательных файлов. */ FileMetadata = "FileMetadata",
37385
+ /** Частичное обновление item через GET и CAS PUT. */ ItemPatch = "ItemPatch",
37386
+ /** Настройки поведения услуг и ресурсов. */ BehaviorSettings = "BehaviorSettings",
37387
+ /** Пошаговый OTP. */ Otp = "Otp",
37388
+ /** Сессия токенов и составной вход. */ AuthSession = "AuthSession"
37389
+ }
37390
+ /** Причины недостаточных данных для чтения метаданных файла. */
37391
+ declare enum FileMetadataErrorReason {
37392
+ /** Полнота карточки не подтверждена. */ ContentTypeUnavailable = "ContentTypeUnavailable",
37393
+ /** Подписка не позволяет получить полную карточку. */ SubscriptionIsNotValid = "SubscriptionIsNotValid",
37394
+ /** Ссылка на файл не содержит ID. */ FileIdUnavailable = "FileIdUnavailable",
37395
+ /** Подписка в полной коллекции не содержит ID. */ SubscriptionIdUnavailable = "SubscriptionIdUnavailable"
37396
+ }
37397
+ /** Имена составных операций чтения метаданных. */
37398
+ declare enum FileMetadataOperation {
37399
+ /** Изображение начальной подписки программы лояльности. */ GetInitialSubscriptionImageInfo = "getInitialSubscriptionImageInfo",
37400
+ /** Аватар элемента. */ GetImageInfo = "getImageInfo",
37401
+ /** Вложение заметки. */ GetFileInfo = "getFileInfo",
37402
+ /** Фотография контакта. */ GetPhotoInfo = "getPhotoInfo",
37403
+ /** Изображение выбранной подписки карты. */ GetSubscriptionImageInfo = "getSubscriptionImageInfo"
37404
+ }
37405
+ /** Локальные стадии чтения метаданных. */
37406
+ declare enum FileMetadataFailureAt {
37407
+ /** Проверка аргументов. */ ValidateInput = "ValidateInput",
37408
+ /** Чтение карточки. */ ReadItem = "ReadItem",
37409
+ /** Проверка полной карточки и связи. */ ValidateItem = "ValidateItem",
37410
+ /** Чтение метаданных. */ ReadMetadata = "ReadMetadata",
37411
+ /** Проверка ответа метаданных. */ ValidateMetadata = "ValidateMetadata"
37412
+ }
37413
+ /** Безопасное предметное уточнение чтения файла. */
37414
+ interface FileMetadataErrorDetail {
37415
+ /** Домен чтения метаданных. */ readonly domain: TorrowSdkErrorDomain.FileMetadata;
37416
+ /** Дополнительная причина недостаточности данных. */ readonly reason?: FileMetadataErrorReason;
37417
+ }
37418
+ /** Причина отказа OTP. */
37419
+ declare enum OtpErrorReason {
37420
+ /** Неверное продолжение. */ InvalidChallenge = "InvalidChallenge",
37421
+ /** Метод не поддержан приложением. */ UnsupportedMethod = "UnsupportedMethod",
37422
+ /** Отсутствует заголовок авторизации. */ AuthHeaderMissing = "AuthHeaderMissing",
37423
+ /** Исчерпан лимит отправки. */ CodeRequestLimitExceeded = "CodeRequestLimitExceeded"
37424
+ }
37425
+ /** Причина отказа сессии. */
37426
+ declare enum AuthSessionErrorReason {
37427
+ /** Сессия ещё не готова к выдаче токенов. */ SessionNotReady = "SessionNotReady",
37428
+ /** Ошибка пользовательского callback. */ CallbackFailed = "CallbackFailed"
37429
+ }
37430
+ /** Шаги изменения настроек. */
37431
+ declare enum BehaviorSettingsEffectStep {
37432
+ /** Целевая запись настроек. */ Write = "Write"
37433
+ }
37434
+ /** Шаг частичного изменения основного документа; не транзакция внутренних действий сервера. */
37435
+ declare enum ItemPatchEffectStep {
37436
+ /** Запись основного документа элемента. */ Write = "Write"
37437
+ }
37438
+ /** Шаги изменения сессии. */
37439
+ declare enum AuthSessionEffectStep {
37440
+ /** Создание серверного продолжения входа по ссылке. */ CreateAuthSession = "CreateAuthSession",
37441
+ /** Закрытие локальной сессии. */ CloseSession = "CloseSession",
37442
+ /** Выдача токенов. */ IssueTokens = "IssueTokens",
37443
+ /** Обновление токенов. */ RefreshTokens = "RefreshTokens",
37444
+ /** Отзыв токенов. */ RevokeTokens = "RevokeTokens",
37445
+ /** Отправка кода или ссылки. */ SendCode = "SendCode",
37446
+ /** Замена токенов в памяти. */ SetTokens = "SetTokens",
37447
+ /** Очистка токенов в памяти. */ ClearTokens = "ClearTokens",
37448
+ /** Сохранение токенов. */ SaveTokens = "SaveTokens",
37449
+ /** Очистка хранилища. */ ClearStorage = "ClearStorage"
37450
+ }
37451
+ /** Безопасное описание отдельного изменения; не журнал всех вызовов. */
37452
+ interface TorrowSdkEffect {
37453
+ /** Область изменения. */ readonly area: TorrowSdkEffectArea;
37454
+ /** Предметный шаг выбранного метода. */ readonly step: BehaviorSettingsEffectStep | AuthSessionEffectStep | ItemPatchEffectStep;
37455
+ /** Доказанность результата шага. */ readonly state: TorrowSdkEffectState;
37456
+ }
37457
+ /** Предметное уточнение настроек. */
37458
+ interface BehaviorSettingsErrorDetail {
37459
+ /** Область ошибки настроек. */ readonly domain: TorrowSdkErrorDomain.BehaviorSettings;
37460
+ /** У настроек нет дополнительной причины; доступ к общему optional reason остаётся типизированным. */ readonly reason?: never;
37461
+ }
37462
+ /** Безопасное уточнение частичного изменения элемента. */
37463
+ interface ItemPatchErrorDetail {
37464
+ /** Область ошибки составной операции patch. */ readonly domain: TorrowSdkErrorDomain.ItemPatch;
37465
+ /** Достаточно общей категории; дополнительная причина не вводится. */ readonly reason?: never;
37466
+ }
37467
+ /** Предметное уточнение OTP; секреты здесь не размещаются. */
37468
+ interface OtpErrorDetail {
37469
+ /** Область ошибки OTP. */ readonly domain: TorrowSdkErrorDomain.Otp;
37470
+ /** Дополнительное уточнение; отсутствие означает, что достаточно category. */ readonly reason?: OtpErrorReason;
37471
+ /** Проверенное время следующей отправки, Unix milliseconds; отсутствует без подсказки. */ readonly nextSendAtMs?: number;
37472
+ /** Проверенная длительность ожидания в секундах. */ readonly retryAfterSeconds?: number;
37473
+ }
37474
+ /** Предметное уточнение сессии. */
37475
+ interface AuthSessionErrorDetail {
37476
+ /** Область ошибки сессии. */ readonly domain: TorrowSdkErrorDomain.AuthSession;
37477
+ /** Дополнительное уточнение; отсутствие означает, что достаточно category. */ readonly reason?: AuthSessionErrorReason;
37478
+ }
37479
+ /** Поддержанные предметные детали ошибки. */
37480
+ type TorrowSdkErrorDetail = BehaviorSettingsErrorDetail | ItemPatchErrorDetail | OtpErrorDetail | AuthSessionErrorDetail | FileMetadataErrorDetail;
37481
+ /** Безопасные HTTP-метаданные без тела и URL. */
37482
+ interface TorrowSdkHttpDetails {
37483
+ /** Статус полученного ответа. */ readonly status: number;
37484
+ /** Код API; числовой wire-код приводится к строке. */ readonly apiCode?: string;
37485
+ /** Известное SDK кодовое имя; произвольные серверные строки исключены. */ readonly apiErrorName?: string;
37486
+ /** Идентификатор запроса для поддержки. */ readonly requestId?: string;
37487
+ /** Идентификатор трассировки сервера. */ readonly traceIdentifier?: string;
37488
+ }
37489
+ /** Чувствительная диагностика; доступна только по явному запросу. */
37490
+ interface TorrowSdkSensitiveDetails {
37491
+ /** Исходное исключение зависимости, включая его исходный стек. */ readonly cause?: unknown;
37492
+ /** Исходное тело ответа. */ readonly body?: unknown;
37493
+ /** Полный URL запроса, который может содержать токены. */ readonly url?: string;
37494
+ /** Данные явного отзыва OTP-токенов. */ readonly cleanup?: {
37495
+ /** Секрет отзыва; не логировать. */ readonly refreshToken: string;
37496
+ };
37497
+ }
37498
+ /** Безопасный снимок ошибки. Отсутствие effects не доказывает отсутствие изменений. */
37499
+ interface TorrowSdkErrorInfo {
37500
+ /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
37501
+ /** Необязательное пояснение для человека, не для ветвления. Передающий текст отвечает за его безопасность. */ readonly publicMessage?: string;
37502
+ /** Метаданные HTTP, если они известны. */ readonly http?: TorrowSdkHttpDetails;
37503
+ /** Предметное уточнение выбранного домена. */ readonly detail?: TorrowSdkErrorDetail;
37504
+ /** Начало fetch соответствующего запроса. */ readonly request?: TorrowSdkRequestState;
37505
+ /** Стабильное имя выбранной составной операции, без аргументов. */ readonly operation?: string;
37506
+ /** Локальная стадия сбоя, без пользовательских данных. */ readonly failureAt?: string;
37507
+ /** Только описанные изменения данной операции; отсутствие означает отсутствие сведений. */ readonly effects?: readonly TorrowSdkEffect[];
37508
+ }
37509
+ /** Параметры создания ошибки; безопасные поля унаследованы из TorrowSdkErrorInfo. */
37510
+ interface TorrowSdkErrorInit extends TorrowSdkErrorInfo {
37511
+ /** Исходные данные, исключённые из стандартной диагностики. */ readonly sensitive?: TorrowSdkSensitiveDetails;
37512
+ }
37513
+ /** Единая ошибка сетевых и выбранных предметных операций SDK. */
37514
+ declare class TorrowSdkError extends Error implements TorrowSdkErrorInfo {
37515
+ #private;
37516
+ /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
37517
+ /** Пояснение без изменения исходной строки: до 512 UTF-16 единиц, не пустое после trim; иначе undefined. */ readonly publicMessage?: string;
37518
+ /** Безопасные метаданные ответа. */ readonly http?: TorrowSdkHttpDetails;
37519
+ /** Неизменяемое предметное уточнение. */ readonly detail?: TorrowSdkErrorDetail;
37520
+ /** Начало fetch; не доставка. */ readonly request?: TorrowSdkRequestState;
37521
+ /** Имя составной операции без пользовательских значений. */ readonly operation?: string;
37522
+ /** Стадия отказа без аргументов. */ readonly failureAt?: string;
37523
+ /** Неизменяемые сведения об описанных изменениях. */ readonly effects?: readonly TorrowSdkEffect[];
37524
+ constructor(init: TorrowSdkErrorInit);
37525
+ /** Безопасный снимок для обычной сериализации и диагностики. */
37526
+ toJSON(): TorrowSdkErrorInfo;
37527
+ /** Явный доступ к секретной диагностике; вызывающий код отвечает за её защиту. */
37528
+ getSensitiveDetails(): TorrowSdkSensitiveDetails;
37529
+ /** Новый снимок для составной операции; исходная ошибка не изменяется. */
37530
+ withContext(context: Partial<TorrowSdkErrorInfo>): TorrowSdkError;
37531
+ }
37532
+
37527
37533
  /**
37528
37534
  * Единые алиасы OpenAPI schema → `*Dto` / shared имена.
37529
37535
  * Собрано скриптом `scripts/build-openapi-dto-aliases.mjs` — не дублировать `export type … = components[…]` в доменных `dto.ts`,
@@ -37532,15 +37538,12 @@ interface components {
37532
37538
  type AccountDto = components["schemas"]["Account"];
37533
37539
  type AccountingTransactionDto = components["schemas"]["AccountingTransaction"];
37534
37540
  type AccountingTransactionStateDto = components["schemas"]["AccountingTransactionState"];
37535
- type ActionHistoryInfoDto = components["schemas"]["ActionHistoryInfo"];
37536
37541
  type ActionHistoryStateDto = components["schemas"]["ActionHistoryState"];
37537
37542
  type ActionHistoryTypeDto = components["schemas"]["ActionHistoryType"];
37538
37543
  type ActivityStatusDto = components["schemas"]["ActivityStatus"];
37539
37544
  type AddExternalAuthReqDto = components["schemas"]["AddExternalAuthReq"];
37540
37545
  type AddExternalAuthRespDto = components["schemas"]["AddExternalAuthResp"];
37541
- type AddProfileRespDto = components["schemas"]["AddProfileResp"];
37542
37546
  type AdvisedItemTypeDto = components["schemas"]["AdvisedItemType"];
37543
- type AnnouncementInfoDto = components["schemas"]["AnnouncementInfo"];
37544
37547
  type AnnouncementStateDto = components["schemas"]["AnnouncementState"];
37545
37548
  type ApiKeyInfoDto = components["schemas"]["ApiKeyInfo"];
37546
37549
  type ApproveCaseParticipationReqDto = components["schemas"]["ApproveCaseParticipationReq"];
@@ -37550,14 +37553,11 @@ type BlockReasonDto = components["schemas"]["BlockReason"];
37550
37553
  type BookResourcesForMeReqDto = components["schemas"]["BookResourcesForMeReq"];
37551
37554
  type BookResourcesForOthersReqDto = components["schemas"]["BookResourcesForOthersReq"];
37552
37555
  type CalendarItemDto = components["schemas"]["CalendarItem"];
37553
- type CalendarViewDto = components["schemas"]["CalendarView"];
37554
37556
  type CancelCaseParticipationReqDto = components["schemas"]["CancelCaseParticipationReq"];
37555
37557
  type CaseItemDto = components["schemas"]["CaseItem"];
37556
37558
  type CaseParticipantDto = components["schemas"]["CaseParticipant"];
37557
37559
  type CaseParticipantFieldsDto = components["schemas"]["CaseParticipantFields"];
37558
37560
  type CaseParticipantTypeDto = components["schemas"]["CaseParticipantType"];
37559
- type CaseParticipantViewDto = components["schemas"]["CaseParticipantView"];
37560
- type CaseViewDto = components["schemas"]["CaseView"];
37561
37561
  type ChangeMoneyReceiveReqDto = components["schemas"]["ChangeMoneyReceiveReq"];
37562
37562
  type ChangeOrderServiceReqDto = components["schemas"]["ChangeOrderServiceReq"];
37563
37563
  type CheckInPropsDto = components["schemas"]["CheckInProps"];
@@ -37567,9 +37567,7 @@ type CompleteDeletingUserReqDto = components["schemas"]["CompleteDeletingUserReq
37567
37567
  type CompleteDeletingUserRespDto = components["schemas"]["CompleteDeletingUserResp"];
37568
37568
  type ContactItemDto = components["schemas"]["ContactItem"];
37569
37569
  type ContactPropertiesDto = components["schemas"]["ContactProperties"];
37570
- type ContactViewDto = components["schemas"]["ContactView"];
37571
37570
  type ContextItemDto = components["schemas"]["ContextItem"];
37572
- type ContextViewDto = components["schemas"]["ContextView"];
37573
37571
  type CreateApiKeyRequestDto = components["schemas"]["CreateApiKeyRequest"];
37574
37572
  type CreateApiKeyResponseDto = components["schemas"]["CreateApiKeyResponse"];
37575
37573
  type CreateAuthSessionReqDto = components["schemas"]["CreateAuthSessionReq"];
@@ -37586,10 +37584,8 @@ type DeviceInfoDto = components["schemas"]["DeviceInfo"];
37586
37584
  type DictionarySortConditionDto = components["schemas"]["DictionarySortCondition"];
37587
37585
  type ExcludeFromGroupsReqDto = components["schemas"]["ExcludeFromGroupsReq"];
37588
37586
  type ExcludeRespDto = components["schemas"]["ExcludeResp"];
37589
- type ExportGraphDto = components["schemas"]["ExportGraph"];
37590
37587
  type ExportRequestDto = components["schemas"]["ExportRequest"];
37591
37588
  type ExternalAuthDto = components["schemas"]["ExternalAuth"];
37592
- type FeedbackDto = components["schemas"]["Feedback"];
37593
37589
  type FeedbackOptionsDto = components["schemas"]["FeedbackOptions"];
37594
37590
  type FileInfoDto = components["schemas"]["FileInfo"];
37595
37591
  type GenerateReportReqDto = components["schemas"]["GenerateReportReq"];
@@ -37604,11 +37600,9 @@ type GetLoyaltySystemsStatisticsRespDto = components["schemas"]["GetLoyaltySyste
37604
37600
  type GetParticipationCountRespDto = components["schemas"]["GetParticipationCountResp"];
37605
37601
  type GetReCheckInScheduleReqDto = components["schemas"]["GetReCheckInScheduleReq"];
37606
37602
  type GetServiceWorkloadInfoRequestDto = components["schemas"]["GetServiceWorkloadInfoRequest"];
37607
- type GetServiceWorkloadInfoRespDto = components["schemas"]["GetServiceWorkloadInfoResp"];
37608
37603
  type GetShareItemSessionReqDto = components["schemas"]["GetShareItemSessionReq"];
37609
37604
  type GetTimetableStatisticsRequestDto = components["schemas"]["GetTimetableStatisticsRequest"];
37610
37605
  type GetTorrowIdRespDto = components["schemas"]["GetTorrowIdResp"];
37611
- type GroupStatusDto = components["schemas"]["GroupStatus"];
37612
37606
  type HobbyDto = components["schemas"]["Hobby"];
37613
37607
  type ImportByFileRequestDto = components["schemas"]["ImportByFileRequest"];
37614
37608
  type ImportByUniqueNameRequestDto = components["schemas"]["ImportByUniqueNameRequest"];
@@ -37620,55 +37614,42 @@ type InitAddingAccountReqDto = components["schemas"]["InitAddingAccountReq"];
37620
37614
  type InitAddingAccountRespDto = components["schemas"]["InitAddingAccountResp"];
37621
37615
  type InitDeletingUserRespDto = components["schemas"]["InitDeletingUserResp"];
37622
37616
  type IntegrationDto = components["schemas"]["Integration"];
37623
- type ItemFeedbackDto = components["schemas"]["ItemFeedback"];
37624
37617
  type ItemSortConditionDto = components["schemas"]["ItemSortCondition"];
37625
37618
  type ItemViewSortConditionDto = components["schemas"]["ItemViewSortCondition"];
37626
37619
  type LoyaltyCardFilterConditionDto = components["schemas"]["LoyaltyCardFilterCondition"];
37627
37620
  type LoyaltyCardItemDto = components["schemas"]["LoyaltyCardItem"];
37628
37621
  type LoyaltyCardSortConditionDto = components["schemas"]["LoyaltyCardSortCondition"];
37629
37622
  type LoyaltyCardSubscriptionDto = components["schemas"]["LoyaltyCardSubscription"];
37630
- type LoyaltyCardViewDto = components["schemas"]["LoyaltyCardView"];
37631
37623
  type LoyaltySystemItemDto = components["schemas"]["LoyaltySystemItem"];
37632
37624
  type LoyaltySystemsStatisticsRespDto = components["schemas"]["LoyaltySystemsStatisticsResp"];
37633
- type LoyaltySystemViewDto = components["schemas"]["LoyaltySystemView"];
37634
37625
  type NoteItemDto = components["schemas"]["NoteItem"];
37635
37626
  type NoteTypeDto = components["schemas"]["NoteType"];
37636
- type NoteViewDto = components["schemas"]["NoteView"];
37637
37627
  type NotificationWayDto = components["schemas"]["NotificationWay"];
37638
37628
  type ObjectInfoDto = components["schemas"]["ObjectInfo"];
37639
37629
  type ObjectSortConditionDto = components["schemas"]["ObjectSortCondition"];
37640
37630
  type OperationTypeDto = components["schemas"]["OperationType"];
37641
37631
  type OrderFilterDto = components["schemas"]["OrderFilter"];
37642
- type OrderRespDto = components["schemas"]["OrderResp"];
37643
37632
  type OrderViewSortConditionDto = components["schemas"]["OrderViewSortCondition"];
37644
37633
  type ParticipantStateDto = components["schemas"]["ParticipantState"];
37645
37634
  type ParticipantTypeDto = components["schemas"]["ParticipantType"];
37646
- type ParticipantViewDto = components["schemas"]["ParticipantView"];
37647
37635
  type ParticipationDto = components["schemas"]["Participation"];
37648
37636
  type ParticipationRespDto = components["schemas"]["ParticipationResp"];
37649
37637
  type PatchCaseReqDto = components["schemas"]["PatchCaseReq"];
37650
37638
  type PersonalReminderDto = components["schemas"]["PersonalReminder"];
37651
37639
  type PickOrderReqDto = components["schemas"]["PickOrderReq"];
37652
- type PickOrderRespDto = components["schemas"]["PickOrderResp"];
37653
37640
  type PlaceDto = components["schemas"]["Place"];
37654
- type ProfileListRespDto = components["schemas"]["ProfileListResp"];
37655
37641
  type ProfilePropertiesDto = components["schemas"]["ProfileProperties"];
37656
37642
  type PublicityTypeDto = components["schemas"]["PublicityType"];
37657
37643
  type PutUrlRespDto = components["schemas"]["PutUrlResp"];
37658
37644
  type RefreshReqDto = components["schemas"]["RefreshReq"];
37659
37645
  type RegisterUserForAccountRespDto = components["schemas"]["RegisterUserForAccountResp"];
37660
37646
  type RegistrationUserInfoDto = components["schemas"]["RegistrationUserInfo"];
37661
- type RemoveProfileRespDto = components["schemas"]["RemoveProfileResp"];
37662
37647
  type ResourceItemApiDto = components["schemas"]["ResourceItem"];
37663
- type ResourceMindMapViewDto = components["schemas"]["ResourceView"];
37664
- type ResourceViewDto = components["schemas"]["ResourceView"];
37665
37648
  type ReturnOrderReqDto = components["schemas"]["ReturnOrderReq"];
37666
- type ReturnOrderRespDto = components["schemas"]["ReturnOrderResp"];
37667
37649
  type RevokeReqDto = components["schemas"]["RevokeReq"];
37668
37650
  type SaveItemToMindMapReqDto = components["schemas"]["SaveItemToMindMapReq"];
37669
37651
  type SearchLoyaltyCardsReqDto = components["schemas"]["SearchLoyaltyCardsReq"];
37670
37652
  type SearchServiceResourcesReqDto = components["schemas"]["SearchServiceResourcesReq"];
37671
- type SearchServiceResourcesRespDto = components["schemas"]["SearchServiceResourcesResp"];
37672
37653
  type SendCodeReqDto = components["schemas"]["SendCodeReq"];
37673
37654
  type SendCodeRespDto = components["schemas"]["SendCodeResp"];
37674
37655
  type SendCommunicationCodeReqDto = components["schemas"]["SendCommunicationCodeReq"];
@@ -37676,12 +37657,10 @@ type SendCommunicationCodeRespDto = components["schemas"]["SendCommunicationCode
37676
37657
  type SendLinkOfItemReqDto = components["schemas"]["SendLinkOfItemReq"];
37677
37658
  type SendLinkOfItemRespDto = components["schemas"]["SendLinkOfItemResp"];
37678
37659
  type ServiceItemApiDto = components["schemas"]["ServiceItem"];
37679
- type ServiceViewDto = components["schemas"]["ServiceView"];
37680
37660
  type SessionDurationPropertiesDto = components["schemas"]["SessionDurationProperties"];
37681
37661
  type SetGroupItemReqDto = components["schemas"]["SetGroupItemReq"];
37682
37662
  type ShareItemReqDto = components["schemas"]["ShareItemReq"];
37683
37663
  type StepDescriptionDto = components["schemas"]["StepDescription"];
37684
- type TimetableCaseDto = components["schemas"]["TimetableCase"];
37685
37664
  type TimetableDetailsVisibilityDto = components["schemas"]["TimetableDetailsVisibility"];
37686
37665
  type TimetableFilterDto = components["schemas"]["TimetableFilter"];
37687
37666
  type TimetableStatisticsRespDto = components["schemas"]["TimetableStatisticsResp"];
@@ -37704,18 +37683,11 @@ type UpdatePersonalListOrderRespDto = components["schemas"]["UpdatePersonalListO
37704
37683
  type UpdateProfilePropertiesRespDto = components["schemas"]["UpdateProfilePropertiesResp"];
37705
37684
  type UserCalendarDto = components["schemas"]["UserCalendar"];
37706
37685
  type UserDeliveryWayDto = components["schemas"]["UserDeliveryWay"];
37707
- type UserFeedbackDto = components["schemas"]["UserFeedback"];
37708
37686
  type VerifyCommunicationCodeReqDto = components["schemas"]["VerifyCommunicationCodeReq"];
37709
37687
  type VerifyCommunicationCodeRespDto = components["schemas"]["VerifyCommunicationCodeResp"];
37710
37688
  type ViewInfoDto = components["schemas"]["ViewInfo"];
37711
37689
  type WorkloadPeriodDto = components["schemas"]["WorkloadPeriod"];
37712
37690
 
37713
- /**
37714
- * Единый алиас на `components["schemas"]`.
37715
- * Локальные `type Schemas = …` в разных модулях при склейке `index.d.ts` (tsup) дают коллизии имён и суффиксы `$1`, `$2`, …
37716
- */
37717
- type OpenApiSchemas = components["schemas"];
37718
-
37719
37691
  type SolutionData = OpenApiSchemas["SolutionData"];
37720
37692
  type PersonalSolutionData = OpenApiSchemas["PersonalSolutionData"];
37721
37693
  type Metrics = OpenApiSchemas["Metrics"];
@@ -37765,35 +37737,6 @@ type NormalizedPublicity<T> = T extends Date ? T : T extends object ? {
37765
37737
  [K in keyof T]: K extends "publicityType" ? Exclude<T[K], "Private" | "Undefined"> : NormalizedPublicity<T[K]>;
37766
37738
  } : T;
37767
37739
 
37768
- /**
37769
- * Корень иерархии объектов Torrow: схема OpenAPI `TorrowObject`.
37770
- * `format: date-time` → `Date` в **`generated.ts`** (см. **`scripts/openapi-codegen.mjs`**).
37771
- */
37772
- type TorrowObject = TorrowObjectDto;
37773
- /**
37774
- * Общие поля item: схема `TorrowItem` + явное пересечение с `TorrowObject`, чтобы тип оставался подтипом `TorrowObject`.
37775
- */
37776
- type TorrowItem = NormalizedPublicity<TorrowItemDto> & TorrowObject;
37777
- /**
37778
- * Публичный item-тип из доменного OpenAPI-DTO: пересечение с **`TorrowItem`**, чтобы в типах явно
37779
- * участвовали общие поля item и связь с **`TorrowObject`** (после codegen даты уже **`Date`** в DTO).
37780
- */
37781
- type TorrowItemFromDto<D extends object> = NormalizedPublicity<D> & TorrowItem;
37782
- /**
37783
- * Ключи, которые не должны попадать в тело create/update: профиль и дискриминатор,
37784
- * поля социального слоя с отдельными эндпоинтами (`TorrowItemCoreFacade` / `TorrowItemFacade`),
37785
- * служебный `meta`, серверные агрегаты, `contactProperties` контактов
37786
- * (`id` и `image` в теле допустимы — в т.ч. клиентский `id` и `FileInfo` после presigned upload).
37787
- * (`ContactsFacade.updateContactProperties`), **`searchMode`** и **`anyoneAccess`**
37788
- * (read-only для всех item: вычисляются на сервере от **`publicityType`**), а также **`activityStatus`** и **`registerInfo`**
37789
- * (read-only на `ContactItem` в продукте / OpenAPI; у прочих item-типов ключей нет — `Omit` без эффекта),
37790
- * а также **`profileType`**, **`profileProperties`**, **`hasTimetable`** контакта
37791
- * (сценарий Профиля — `POST /api/v1/user/profiles`, тип **`UserProfileItemForAdd`**).
37792
- */
37793
- type TorrowItemKeysExcludedFromItemWriteBody = "personalInfo" | "discriminator" | "publicityType" | "masterInfo" | "integrationIds" | "tags" | "groupInfo" | "solutionData" | "childItemStats" | "feedbackOptions" | "uniqueName" | "blockInfo" | "meta" | "contactProperties" | "activityStatus" | "registerInfo" | "searchMode" | "anyoneAccess" | "profileType" | "profileProperties" | "hasTimetable";
37794
- /** Поля item в телах create/update: без ключей, исключённых в `TorrowItemKeysExcludedFromItemWriteBody`. */
37795
- type TorrowItemForCreateOrUpdate<T extends TorrowItem> = Omit<T, TorrowItemKeysExcludedFromItemWriteBody>;
37796
-
37797
37740
  /** Общие параметры частичного изменения одного элемента; CAS всегда включён. */
37798
37741
  interface TorrowItemPatchOptions {
37799
37742
  /** Ожидаемая версия всего элемента (1..2147483647); отсутствие использует версию внутреннего GET. */
@@ -37828,9 +37771,9 @@ interface TorrowItemPatchResult<TItem> {
37828
37771
  * Сгенерировано: `node scripts/build-sdk-shared-public-types.mjs`
37829
37772
  */
37830
37773
 
37831
- type AccountingTransaction = NormalizedPublicity<AccountingTransactionDto>;
37774
+ type AccountingTransaction = AccountingTransactionRead;
37832
37775
  type AccountingTransactionState = AccountingTransactionStateDto;
37833
- type AddProfileResp = NormalizedPublicity<AddProfileRespDto>;
37776
+ type AddProfileResp = AddProfileRespRead;
37834
37777
  type BalanceValue = BalanceValueDto;
37835
37778
  type DeleteResponse = DeleteResponseDto;
37836
37779
  type DictionarySortCondition = DictionarySortConditionDto;
@@ -37847,24 +37790,1245 @@ type ObjectInfo = ObjectInfoDto;
37847
37790
  type ObjectSortCondition = ObjectSortConditionDto;
37848
37791
  type ParticipantState = ParticipantStateDto;
37849
37792
  type ParticipantType = ParticipantTypeDto;
37850
- type ParticipantView = NormalizedPublicity<ParticipantViewDto>;
37793
+ type ParticipantView = ParticipantViewRead;
37851
37794
  type Participation = ParticipationDto;
37852
37795
  type ParticipationResp = ParticipationRespDto;
37853
37796
  type PutUrlResp = PutUrlRespDto;
37854
- type ResourceView = NormalizedPublicity<ResourceViewDto>;
37797
+ type ResourceView = ResourceViewRead;
37855
37798
  type SaveItemToMindMapReq = SaveItemToMindMapReqDto;
37856
37799
  type SendLinkOfItemReq = SendLinkOfItemReqDto;
37857
37800
  type SendLinkOfItemResp = SendLinkOfItemRespDto;
37858
37801
  type SetGroupItemReq = SetGroupItemReqDto;
37859
37802
  type ShareItemReq = ShareItemReqDto;
37860
- type TimetableCase = NormalizedPublicity<TimetableCaseDto>;
37803
+ type TimetableCase = TimetableCaseRead;
37861
37804
  type TimetableDetailsVisibility = TimetableDetailsVisibilityDto;
37862
37805
  type TimetableFilter = TimetableFilterDto;
37863
37806
  type TorrowObjectType = TorrowObjectTypeDto;
37864
37807
  type UnsetGroupItemReq = UnsetGroupItemReqDto;
37865
37808
  type UpdateFileIdResp = UpdateFileIdRespDto;
37866
37809
 
37867
- type NoteItem = TorrowItemFromDto<NoteItemDto>;
37810
+ type ContactItem = TorrowItemFromDto<Omit<ContactItemDto, "loyaltyCard">> & {
37811
+ /** Карта лояльности с подготовленными общими read-полями; отсутствие карточки сохраняется. */
37812
+ loyaltyCard?: TorrowItem;
37813
+ };
37814
+ /** Канал связи для частичной записи: пользовательские поля {@link Communication}, без серверных checkDate/valueForSearch; rid сохраняет идентичность, checkState по умолчанию Unchecked. */
37815
+ type ContactCommunicationPatch = Omit<Communication, "checkDate" | "valueForSearch">;
37816
+ /** Частичное изменение обычного или профильного Contact. Общие name/image наследуют {@link TorrowItemPatchFields}; пропуск сохраняет поле, вложенное значение заменяется целиком. */
37817
+ interface ContactItemPatch extends TorrowItemPatchFields {
37818
+ /** Полная замена адресов; []/null удаляют адреса, отсутствующий rid создаётся SDK. */
37819
+ addresses?: Address[] | null;
37820
+ /** Дата рождения; null удаляет дату. */
37821
+ birthday?: Date | null;
37822
+ /** Полная замена каналов; []/null очищают, серверные сведения проверки не принимаются на вход. */
37823
+ communications?: ContactCommunicationPatch[] | null;
37824
+ /** Памятные даты целиком; []/null очищают, отсутствующий rid создаётся SDK. */
37825
+ dates?: MemorableDate[] | null;
37826
+ /** Имя человека; null/пустая строка очищают текст без нормализации. */
37827
+ firstName?: string | null;
37828
+ /** Фамилия; null/пустая строка очищают текст. */
37829
+ lastName?: string | null;
37830
+ /** Отчество; null/пустая строка очищают текст. */
37831
+ middleName?: string | null;
37832
+ /** Название компании; null/пустая строка очищают текст. */
37833
+ company?: string | null;
37834
+ /** Должность; null/пустая строка очищают текст. */
37835
+ position?: string | null;
37836
+ /** Описание контакта; null/пустая строка очищают текст. */
37837
+ description?: string | null;
37838
+ /** Пол по OpenAPI; UnknownGender означает неизвестное значение, null не принимается. */
37839
+ gender?: Gender;
37840
+ /** Полная замена ссылок на фотографии; []/null очищают, URL и metadata файла не записываются. */
37841
+ photos?: TorrowItemPatchImage[] | null;
37842
+ /** Визитка целиком с нормализацией трёх слотов; null запрещён, для очистки передать три явно пустых значения. */
37843
+ visitCard?: ContactVisitCard;
37844
+ }
37845
+ /** Элемент `ContactItem.addresses` (ответ GET). */
37846
+ type Address = NonNullable<ContactItem["addresses"]>[number];
37847
+ /** Элемент `ContactItem.communications` (ответ GET, полная модель). */
37848
+ type Communication = NonNullable<ContactItem["communications"]>[number];
37849
+ /** `communications[]` в теле `POST`/`PUT` контакта: без read-only `checkDate`; `checkState` опционален (SDK подставляет `Unchecked`). */
37850
+ type CommunicationForCreateOrUpdate = Omit<Communication, "checkDate">;
37851
+ /** Элемент `ContactItem.dates`. */
37852
+ type MemorableDate = NonNullable<ContactItem["dates"]>[number];
37853
+ /** `ContactItem.rating`. */
37854
+ type Rating = NonNullable<ContactItem["rating"]>;
37855
+ /** `ContactItem.visitCard` (3 слота отображения). */
37856
+ type ContactVisitCard = NonNullable<ContactItem["visitCard"]>;
37857
+ /** Элемент `ContactVisitCard.fields`. */
37858
+ type ContactVisitCardField = NonNullable<NonNullable<ContactVisitCard["fields"]>[number]>;
37859
+ /** `ContactItem.personalInfo`. */
37860
+ type ContactPersonalInfo = NonNullable<ContactItem["personalInfo"]>;
37861
+ /** `ContactItem.profileType`. */
37862
+ type ProfileType = NonNullable<ContactItem["profileType"]>;
37863
+ /** `ContactItem.registerInfo`. */
37864
+ type RegisterInfo = NonNullable<ContactItem["registerInfo"]>;
37865
+ type Gender = NonNullable<ContactItem["gender"]>;
37866
+ type CommunicationType = NonNullable<Communication["type"]>;
37867
+ declare const GenderValues: {
37868
+ readonly Unknown: "UnknownGender";
37869
+ readonly Male: "Male";
37870
+ readonly Female: "Female";
37871
+ readonly Other: "OtherGender";
37872
+ };
37873
+ declare const CommunicationTypeValues: {
37874
+ readonly Unknown: "UnknownCommunicationType";
37875
+ readonly Phone: "Phone";
37876
+ readonly Sms: "Sms";
37877
+ readonly Email: "Email";
37878
+ readonly WebSite: "WebSite";
37879
+ readonly Telegram: "Telegram";
37880
+ readonly WhatsApp: "WhatsApp";
37881
+ readonly Viber: "Viber";
37882
+ readonly Facebook: "Facebook";
37883
+ readonly Instagram: "Instagram";
37884
+ readonly Vkontakte: "Vkontakte";
37885
+ readonly Odnoklassniki: "Odnoklassniki";
37886
+ readonly Skype: "Skype";
37887
+ readonly Youtube: "Youtube";
37888
+ readonly Twitter: "Twitter";
37889
+ readonly LinkedIn: "LinkedIn";
37890
+ readonly Max: "Max";
37891
+ readonly Other: "Other";
37892
+ };
37893
+ declare const ProfileTypeValues: {
37894
+ readonly Unknown: "UnknownProfile";
37895
+ readonly None: "None";
37896
+ readonly MyProfile: "MyProfile";
37897
+ readonly AnyProfile: "AnyProfile";
37898
+ readonly CopyProfile: "CopyProfile";
37899
+ };
37900
+ type SendCommunicationCodeReq = SendCommunicationCodeReqDto;
37901
+ type SendCommunicationCodeResp = SendCommunicationCodeRespDto;
37902
+ type VerifyCommunicationCodeReq = VerifyCommunicationCodeReqDto;
37903
+ type VerifyCommunicationCodeResp = VerifyCommunicationCodeRespDto;
37904
+ type ActivityStatus = ActivityStatusDto;
37905
+ type ContactProperties = ContactPropertiesDto;
37906
+ type UpdateContactPropertiesResp = UpdateContactPropertiesRespDto;
37907
+ type UpdateMasterInfoReq = UpdateMasterInfoReqDto;
37908
+ type FeedbackOptions = FeedbackOptionsDto;
37909
+ type PersonalReminder = PersonalReminderDto;
37910
+
37911
+ type GroupStatus = GroupStatusRead;
37912
+ type UpdateItemAccountsReq = UpdateItemAccountsReqDto;
37913
+ type UpdateItemGroupsReq = UpdateItemGroupsReqDto;
37914
+ type UpdatePersonalListOrderReq = UpdatePersonalListOrderReqDto;
37915
+ type UpdatePersonalListOrderResp = UpdatePersonalListOrderRespDto;
37916
+ /**
37917
+ * Тело `POST`/`PUT` **`/api/v1/contacts`** (обычный контакт).
37918
+ * `communications` — {@link CommunicationForCreateOrUpdate} (без read-only `checkDate`).
37919
+ */
37920
+ type ContactItemForCreateOrUpdate = Omit<TorrowItemForCreateOrUpdate<TorrowItemFromDto<ContactItemDto>>, "communications"> & {
37921
+ communications?: CommunicationForCreateOrUpdate[] | null;
37922
+ };
37923
+
37924
+ type ContextItem = TorrowItemFromDto<ContextItemDto>;
37925
+ type ContextItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<ContextItem>;
37926
+ /** Частичное изменение: name/image — общие поля; color/description заменяются целиком. Остальные аспекты имеют отдельные методы. */
37927
+ type ContextItemPatch = TorrowItemPatchFields & {
37928
+ /** Цвет #RRGGBB; пропуск сохраняет текущий; null/empty не поддерживаются сервером. */
37929
+ color?: string;
37930
+ /** Описание; null либо empty очищает содержимое, пропуск сохраняет. */
37931
+ description?: string | null;
37932
+ };
37933
+
37934
+ type CalendarItem = TorrowItemFromDto<CalendarItemDto>;
37935
+ type CalendarItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<CalendarItem>;
37936
+ /** Полный интервал исключения календаря; существующие интервалы сохраняют свой rid. */
37937
+ interface CalendarItemPatchTimeRange {
37938
+ /** Идентификатор вложенного интервала (24 hex); для нового интервала используйте generateRid(). */
37939
+ rid: string;
37940
+ /** Начало интервала в Date SDK; в запросе сериализуется в ISO UTC. */
37941
+ begin: Date;
37942
+ /** Конец интервала в Date SDK; предметный порядок границ проверяет сервер. */
37943
+ end: Date;
37944
+ /** Подпись интервала; null/пропуск не создаёт текстовую подпись. */
37945
+ name?: string | null;
37946
+ }
37947
+ /** Полная замена исключений; пропущенные внутри структуры списки не объединяются со снимком. */
37948
+ interface CalendarItemPatchScheduleRangeExceptions {
37949
+ /** Список заменённых интервалов; []/null/пропуск очищает этот список внутри новой структуры. */
37950
+ replacedTimeRanges?: CalendarItemPatchTimeRange[] | null;
37951
+ /** Список исключённых интервалов; []/null/пропуск очищает этот список внутри новой структуры. */
37952
+ excludedTimeRanges?: CalendarItemPatchTimeRange[] | null;
37953
+ }
37954
+ /** Частичное изменение календаря; общие name/image описаны в TorrowItemPatchFields. */
37955
+ interface CalendarItemPatch extends TorrowItemPatchFields {
37956
+ /** Описание; null или пустая строка очищает содержимое, пропуск сохраняет. */
37957
+ description?: string | null;
37958
+ /** Индекс вида int32; null очищает, 0 является реальным значением (ACK может нормализовать его в null). */
37959
+ calendarViewIndex?: number | null;
37960
+ /** Полная замена структуры исключений; null снимает структуру, {} очищает её списки. */
37961
+ scheduleRangeExceptions?: CalendarItemPatchScheduleRangeExceptions | null;
37962
+ }
37963
+
37964
+ /** Цена выбранной карточки: optional settings без null; элементы цены и расписания сохраняются. */
37965
+ type ItemPriceInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["PriceInfo"]>, "settings"> & {
37966
+ /** Ценовые записи; серверный null удаляет ключ, явный [] сохраняет его. */
37967
+ settings?: NonNullable<OpenApiSchemas["PriceInfo"]["settings"]>;
37968
+ };
37969
+
37970
+ /** Редактируемые денежные поля общей схемы PriceProperties: priceWithoutDiscount — исходная цена, discount — скидка, salePrice — итоговая, currencyCode — валюта, prepayment — предоплата, expences — расходы, takePrice — выручка, taxRate/taxAmount — налог. Значения наследуются из OpenAPI; SDK ничего не вычисляет. paymentProviderPropertiesList исключён: API игнорирует его в обоих направлениях. */
37971
+ type ItemPricePatchProperties = Omit<NonNullable<NonNullable<NonNullable<ServiceItemApiDto["priceInfo"]>["settings"]>[number]["priceProperties"]>, "paymentProviderPropertiesList">;
37972
+ /** Одна цена с собственным расписанием; запись заменяется целиком при priceInfo patch. */
37973
+ interface ItemPricePatchSetting {
37974
+ /** Цена данной записи. Чтобы удалить цену, удалите всю запись из settings. */
37975
+ priceProperties: ItemPricePatchProperties;
37976
+ /** Расписание действия данной цены; null либо отсутствие означает отсутствие ограничения этой структуры. */
37977
+ schedule?: NonNullable<ServiceItemApiDto["schedule"]> | null;
37978
+ }
37979
+ /** Полное редактируемое представление цен; настройки и их расписания заменяются целиком. */
37980
+ interface ItemPricePatchInfo {
37981
+ /** Упорядоченные ценовые записи; [] снимает настройки. Каждая запись содержит цену. */
37982
+ settings: ItemPricePatchSetting[];
37983
+ }
37984
+ /** Полная замена ценовой области; отдельные записи меняются передачей нового списка settings. */
37985
+ interface ItemPricePatchFields {
37986
+ /** Полная замена всех ценовых записей; null очищает всю область. */
37987
+ priceInfo?: ItemPricePatchInfo | null;
37988
+ }
37989
+
37990
+ /** Внутренний wire-снимок события для patch; выбранные nullable поля не подготавливаются до PUT. */
37991
+ type CaseItemWire = NormalizedPublicity<CaseItemDto>;
37992
+ type CaseItem = TorrowItemFromDto<Omit<CaseItemDto, "personalInfo" | "priceInfo"> & {
37993
+ /** Персональные сведения с предметными ресурсами билета и оплаты. */
37994
+ personalInfo?: CasePersonalInfoRead;
37995
+ /** Цена карточки: optional settings без null; исходная обязательность родителя сохранена. */
37996
+ priceInfo?: ItemPriceInfoRead;
37997
+ }>;
37998
+ /** Частичное изменение конфигурации события. Общие name/image — {@link TorrowItemPatchFields}; полная замена ценовой области — {@link ItemPricePatchFields}. Пропуск сохраняет поле, вложенные значения заменяются целиком. Состояние/участие/бронь изменяются отдельными операциями. */
37999
+ type CaseItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38000
+ /** Начало события; Date, null снимает дату; календарную допустимость проверяет сервер. */
38001
+ beginDate?: Date | null;
38002
+ /** Окончание события; Date, null снимает дату. */
38003
+ endDate?: Date | null;
38004
+ /** Описание без trim; null/пустая строка очищают текст. */
38005
+ description?: string | null;
38006
+ /** Идентификатор места; непустая строка, null снимает ссылку. */
38007
+ placeId?: string | null;
38008
+ /** Текст места; null/пустая строка очищают текст. */
38009
+ place?: string | null;
38010
+ /** Вид планирования, кроме UnknownTimeType; ограничения перехода проверяет сервер. */
38011
+ caseType?: Exclude<NonNullable<CaseItem["caseType"]>, "UnknownTimeType">;
38012
+ /** Полная замена расписания; null снимает расписание, не пересчитывая повторения в SDK. */
38013
+ schedule?: CaseItem["schedule"] | null;
38014
+ /** Окно открытия регистрации в секундах; int32/null, null снимает ограничение. */
38015
+ registrationOpen?: number | null;
38016
+ /** Окно закрытия регистрации в секундах; int32/null, null снимает ограничение. */
38017
+ registrationClose?: number | null;
38018
+ /** Визитка события целиком; null запрещён, поля не нормализуются как Contact. */
38019
+ visitCard?: CaseItem["visitCard"];
38020
+ /** Срок удержания брони в секундах; int32/null, null снимает значение. */
38021
+ bookingDuration?: number | null;
38022
+ /** Максимальная вместимость; int32/null, ноль сохраняется. */
38023
+ maxConsumerQuantity?: number | null;
38024
+ /** Дополнительно зарезервированные вручную места; int32/null, отдельно от consumersCount. */
38025
+ bookingConsumerQuantity?: number | null;
38026
+ /** Процент загрузки исполнителя; конечное число/null, предметные лимиты проверяет сервер. */
38027
+ executorUsagePercent?: number | null;
38028
+ /** Признак доступности ресурсов; Unknown — серверный sentinel отсутствия; null запрещён. */
38029
+ availableResources?: CaseItem["availableResources"];
38030
+ /** Необходимость одобрения; null снимает настройку, false сохраняется. */
38031
+ needApproval?: boolean | null;
38032
+ /** Генерация одиночных событий; null снимает настройку без удаления пропущенного расписания. */
38033
+ createSingleCases?: boolean | null;
38034
+ /** Полная замена правил регистрации; null снимает правила. */
38035
+ checkinPermission?: CaseItem["checkinPermission"] | null;
38036
+ /** Скрытие события; null снимает настройку, false сохраняется. */
38037
+ hidden?: boolean | null;
38038
+ /** Приложения целиком; []/null очищают список. */
38039
+ appendixList?: CaseItem["appendixList"];
38040
+ /** Полная замена требований к участнику; null снимает требования. */
38041
+ participateFieldRequirements?: CaseItem["participateFieldRequirements"] | null;
38042
+ /** Группы ресурсов целиком; []/null очищают список, бронирование не выполняется SDK. */
38043
+ resourceGroupList?: CaseItem["resourceGroupList"];
38044
+ /** Приоритет обработки; конечное число/null, null снимает значение. */
38045
+ priority?: number | null;
38046
+ /** Идентификатор группы клиентов; непустая строка, null снимает ссылку. */
38047
+ clientGroupId?: string | null;
38048
+ /** Автоматизации целиком; []/null очищают список, исполнение остаётся серверу. */
38049
+ caseActionList?: CaseItem["caseActionList"];
38050
+ /** Правила начислений лояльности целиком; []/null очищают список. */
38051
+ loyaltyTransactionPropertiesList?: CaseItem["loyaltyTransactionPropertiesList"];
38052
+ };
38053
+ type CreateCaseReq = NormalizedPublicity<CreateCaseReqDto>;
38054
+ type AvailabilityTime = AvailabilityTimeDto;
38055
+ type CaseParticipantType = CaseParticipantTypeDto;
38056
+ /**
38057
+ * Участник кейса. В сгенерированных типах только **`loyaltyCardId`**.
38058
+ * Legacy `loyalityCardId` остаётся в `docs/torrow-swagger.json` (wire для старых клиентов),
38059
+ * но вырезается обёрткой codegen (`scripts/openapi-codegen.mjs` → `stripLegacyWireAliases`).
38060
+ * Сервер игнорирует опечатку при записи; в JSON ответов поле ещё может прийти — не использовать.
38061
+ * Проверка против живого API — отдельно (integration / ручные тесты).
38062
+ */
38063
+ type CaseParticipant = CaseParticipantDto;
38064
+ type CaseParticipantView = CaseParticipantViewRead;
38065
+ type CaseParticipantFields = CaseParticipantFieldsDto;
38066
+ type GetCaseParticipationCountResp = GetCaseParticipationCountRespDto;
38067
+ type CheckInReq = CheckInReqDto;
38068
+ type CheckInProps = CheckInPropsDto;
38069
+ type BookResourcesForMeReq = BookResourcesForMeReqDto;
38070
+ type BookResourcesForOthersReq = BookResourcesForOthersReqDto;
38071
+ type ChangeMoneyReceiveReq = ChangeMoneyReceiveReqDto;
38072
+ type ApproveCaseParticipationReq = ApproveCaseParticipationReqDto;
38073
+ type CancelCaseParticipationReq = CancelCaseParticipationReqDto;
38074
+ type PatchCaseReq = PatchCaseReqDto;
38075
+ type CaseState = CaseItem["caseState"];
38076
+ type CaseType = CaseItem["caseType"];
38077
+ declare const CaseStateValues: {
38078
+ readonly Unknown: "UnknownCaseState";
38079
+ readonly Verifying: "Verifying";
38080
+ readonly Waiting: "Waiting";
38081
+ readonly Processing: "Processing";
38082
+ readonly Preparing: "Preparing";
38083
+ readonly Completed: "Completed";
38084
+ readonly Closed: "Closed";
38085
+ readonly Rejected: "Rejected";
38086
+ readonly Canceled: "Canceled";
38087
+ readonly TimeControlled: "TimeControlled";
38088
+ readonly TaskNotCompleted: "TaskNotCompleted";
38089
+ readonly TaskCompleted: "TaskCompleted";
38090
+ };
38091
+ declare const CaseTypeValues: {
38092
+ readonly Unknown: "UnknownTimeType";
38093
+ readonly Time: "Time";
38094
+ readonly RepeatedTime: "RepeatedTime";
38095
+ readonly Today: "Today";
38096
+ readonly Week: "Week";
38097
+ readonly Later: "Later";
38098
+ readonly Date: "Date";
38099
+ readonly State: "State";
38100
+ };
38101
+ type CaseItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<TorrowItemFromDto<CaseItemDto>>;
38102
+
38103
+ /** Общий query участников для loyalty cards / loyalty systems (дубли не тащить в два `types.ts`). */
38104
+ type LoyaltyParticipantsQuery = {
38105
+ participantStateList?: ParticipantState[] | null;
38106
+ participantTypeList?: ParticipantType[] | null;
38107
+ take?: number | null;
38108
+ skip?: number | null;
38109
+ lmFrom?: Date | null;
38110
+ lmTo?: Date | null;
38111
+ cdFrom?: Date | null;
38112
+ cdTo?: Date | null;
38113
+ includeDeleted?: boolean | null;
38114
+ sort?: ObjectSortCondition | null;
38115
+ };
38116
+
38117
+ type LoyaltyCardItem = TorrowItemFromDto<LoyaltyCardItemDto>;
38118
+ type CreateLoyaltyCardSubscriptionReq = CreateLoyaltyCardSubscriptionReqDto;
38119
+ type LoyaltyCardSubscription = LoyaltyCardSubscriptionDto;
38120
+ type LoyaltyCardItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<LoyaltyCardItem>;
38121
+
38122
+ type LoyaltyTransactionsQuery = {
38123
+ state?: AccountingTransactionState | null;
38124
+ transactionDateFrom?: Date | null;
38125
+ transactionDateTo?: Date | null;
38126
+ take?: number | null;
38127
+ skip?: number | null;
38128
+ lmFrom?: Date | null;
38129
+ lmTo?: Date | null;
38130
+ cdFrom?: Date | null;
38131
+ cdTo?: Date | null;
38132
+ includeDeleted?: boolean | null;
38133
+ sort?: ObjectSortCondition | null;
38134
+ };
38135
+
38136
+ /** Поля программы из DTO; только три array-only patch-контейнера исключают null, сохраняя optional-модификаторы. */
38137
+ type LoyaltySystemItemReadFields = {
38138
+ [K in keyof LoyaltySystemItemDto]: K extends "referralProgramIds" | "beginTransactionValues" | "accountingProductNames" ? Exclude<LoyaltySystemItemDto[K], null> : LoyaltySystemItemDto[K];
38139
+ };
38140
+ /**
38141
+ * Программа лояльности: referralProgramIds — связанные реферальные программы,
38142
+ * beginTransactionValues — значения будущего выпуска, accountingProductNames — имена учётных продуктов.
38143
+ * Эти списки исключают null, сохраняя optional; остальные поля и элементы наследуются из DTO.
38144
+ */
38145
+ type LoyaltySystemItem = TorrowItemFromDto<LoyaltySystemItemReadFields>;
38146
+ type CreateLoyaltyCardReq = CreateLoyaltyCardReqDto;
38147
+ type SearchLoyaltyCardsReq = SearchLoyaltyCardsReqDto;
38148
+ type LoyaltyCardFilterCondition = LoyaltyCardFilterConditionDto;
38149
+ type LoyaltyCardSortCondition = LoyaltyCardSortConditionDto;
38150
+ type GetLoyaltySystemsStatisticsReq = GetLoyaltySystemsStatisticsReqDto;
38151
+ type GetLoyaltySystemsStatisticsResp = GetLoyaltySystemsStatisticsRespDto;
38152
+ type LoyaltySystemsStatisticsResp = LoyaltySystemsStatisticsRespDto;
38153
+ type OperationType = OperationTypeDto;
38154
+ type ItemSortCondition = ItemSortConditionDto;
38155
+ /** Полная запись программы сохраняет исходные nullable списки DTO; ограничения частичного patch не переносятся на CRUD. */
38156
+ type LoyaltySystemItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<TorrowItemFromDto<LoyaltySystemItemDto>>;
38157
+
38158
+ type LoyaltyCardIssueType = NonNullable<LoyaltySystemItem["loyaltyCardIssueType"]>;
38159
+ type LoyaltyCardUpdateKeyInformation = NonNullable<LoyaltySystemItem["loyaltyCardUpdateKeyInformation"]>;
38160
+ type LoyaltyCardUpdateNonKeyInformation = NonNullable<LoyaltySystemItem["loyaltyCardUpdateNonKeyInformation"]>;
38161
+ declare const LoyaltyCardIssueTypeValues: {
38162
+ readonly Unknown: "UnknownLoyaltyCardIssueType";
38163
+ readonly Manual: "Manual";
38164
+ readonly AutoActive: "AutoActive";
38165
+ readonly AutoIssued: "AutoIssued";
38166
+ };
38167
+ declare const LoyaltyCardUpdateKeyInformationValues: {
38168
+ readonly Unknown: "UnknownLoyaltyCardUpdateKeyInformation";
38169
+ readonly NonKeyDisallowed: "NonKeyDisallowed";
38170
+ readonly NonKeyAllowed: "NonKeyAllowed";
38171
+ };
38172
+ declare const LoyaltyCardUpdateNonKeyInformationValues: {
38173
+ readonly Unknown: "UnknownLoyaltyCardUpdateNonKeyInformation";
38174
+ readonly KeyDisallowed: "KeyDisallowed";
38175
+ readonly KeyAllowed: "KeyAllowed";
38176
+ };
38177
+ /** OpenAPI `LoyaltyCardSortCondition` — сортировка поиска карт в программе. */
38178
+ declare const LoyaltyCardSortConditionValues: {
38179
+ readonly SequenceCardNumberAsc: "SequenceCardNumberAsc";
38180
+ readonly SequenceCardNumberDesc: "SequenceCardNumberDesc";
38181
+ readonly LoyaltyCardStateAsc: "LoyaltyCardStateAsc";
38182
+ readonly LoyaltyCardStateDesc: "LoyaltyCardStateDesc";
38183
+ readonly SequenceCardNumberAscLoyaltyCardStateAsc: "SequenceCardNumberAscLoyaltyCardStateAsc";
38184
+ readonly SequenceCardNumberDescLoyaltyCardStateAsc: "SequenceCardNumberDescLoyaltyCardStateAsc";
38185
+ readonly SequenceCardNumberAscLoyaltyCardStateDesc: "SequenceCardNumberAscLoyaltyCardStateDesc";
38186
+ readonly SequenceCardNumberDescLoyaltyCardStateDesc: "SequenceCardNumberDescLoyaltyCardStateDesc";
38187
+ readonly LoyaltyCardStateAscSequenceCardNumberAsc: "LoyaltyCardStateAscSequenceCardNumberAsc";
38188
+ readonly LoyaltyCardStateAscSequenceCardNumberDesc: "LoyaltyCardStateAscSequenceCardNumberDesc";
38189
+ readonly LoyaltyCardStateDescSequenceCardNumberAsc: "LoyaltyCardStateDescSequenceCardNumberAsc";
38190
+ readonly LoyaltyCardStateDescSequenceCardNumberDesc: "LoyaltyCardStateDescSequenceCardNumberDesc";
38191
+ };
38192
+ type LoyaltyGroupListQuery = {
38193
+ itemType?: TorrowObjectType | null;
38194
+ minParticipantType?: ParticipantType | null;
38195
+ operationType?: OperationType | null;
38196
+ recursionDepth?: number | null;
38197
+ take?: number | null;
38198
+ skip?: number | null;
38199
+ lmfrom?: Date | null;
38200
+ lmto?: Date | null;
38201
+ includeDeleted?: boolean | null;
38202
+ sort?: ItemSortCondition | null;
38203
+ };
38204
+ /** Частичное изменение настроек программы; общие name/image сохраняют контракт TorrowItemPatchFields. */
38205
+ interface LoyaltySystemItemPatch extends TorrowItemPatchFields {
38206
+ /** Описание программы; null очищает. */
38207
+ description?: string | null;
38208
+ /** Ссылка на визитку; null снимает связь. */
38209
+ businessCardId?: string | null;
38210
+ /** Правило выпуска будущих карт; Unknown не принимается. */
38211
+ loyaltyCardIssueType?: Exclude<NonNullable<LoyaltySystemItem["loyaltyCardIssueType"]>, "UnknownLoyaltyCardIssueType">;
38212
+ /** Доступ к выпускаемым картам; это не публичность самого item. */
38213
+ loyaltyCardAnyoneAccess?: Exclude<NonNullable<LoyaltySystemItem["loyaltyCardAnyoneAccess"]>, "UnknownAnyoneAccess">;
38214
+ /** Политика изменения ключевой информации карт. */
38215
+ loyaltyCardUpdateKeyInformation?: Exclude<LoyaltyCardUpdateKeyInformation, "UnknownLoyaltyCardUpdateKeyInformation">;
38216
+ /** Политика изменения неключевой информации карт. */
38217
+ loyaltyCardUpdateNonKeyInformation?: Exclude<LoyaltyCardUpdateNonKeyInformation, "UnknownLoyaltyCardUpdateNonKeyInformation">;
38218
+ /** Срок действия будущей карты в днях (int32); 0 — значение, null очищает. */
38219
+ loyaltyCardUsagePeriod?: number | null;
38220
+ /** Начало программы; null снимает ограничение. */
38221
+ startDate?: Date | null;
38222
+ /** Окончание программы; null снимает ограничение. */
38223
+ expiredDate?: Date | null;
38224
+ /** Полная замена требований к контакту при выпуске; null очищает. */
38225
+ contactInformationFieldsRequirements?: NonNullable<LoyaltySystemItem["contactInformationFieldsRequirements"]> | null;
38226
+ /** Полная замена ссылок на реферальные программы; [] очищает. */
38227
+ referralProgramIds?: string[];
38228
+ /** Начальные значения будущего выпуска; существующие балансы не меняются, [] очищает. */
38229
+ beginTransactionValues?: NonNullable<LoyaltySystemItem["beginTransactionValues"]>;
38230
+ /** Полная конфигурация стартового абонемента будущих карт; null очищает. */
38231
+ initialSubscription?: LoyaltySystemInitialSubscriptionPatch | null;
38232
+ /** Полная замена имён учётных продуктов; [] очищает. */
38233
+ accountingProductNames?: NonNullable<LoyaltySystemItem["accountingProductNames"]>;
38234
+ }
38235
+ /**
38236
+ * Конфигурация будущего стартового абонемента: name — название, usagePeriod — срок в днях,
38237
+ * transactionValues — начальные значения. Наследует эти атрибуты InitialSubscription;
38238
+ * image ограничено ссылкой файла, URL/служебные метаданные не редактируются.
38239
+ */
38240
+ type LoyaltySystemInitialSubscriptionPatch = Omit<NonNullable<LoyaltySystemItem["initialSubscription"]>, "image"> & {
38241
+ /** Загруженный файл стартового абонемента; null снимает изображение. */
38242
+ image?: TorrowItemPatchImage | null;
38243
+ };
38244
+ /** Полное обновление программы: numeratorInfo доступно только при создании и чтении. */
38245
+ type LoyaltySystemItemForUpdate = Omit<LoyaltySystemItemForCreateOrUpdate, "numeratorInfo">;
38246
+
38247
+ /** Предметные значения; версия услуги передаётся отдельно. */
38248
+ type ServiceImplicitTagParams = {
38249
+ /** Пользовательское название заказа для отображения в приложении; не меняет серверное имя создаваемого заказа. */
38250
+ orderName?: string;
38251
+ /** Часовой пояс отображения услуги, например Europe/Moscow. */
38252
+ timeZone?: string;
38253
+ /** За сколько минут до начала запрещена отмена участия. */
38254
+ disableCancelMyParticipationBeforeMinutes?: number;
38255
+ /** За сколько минут до начала запрещён перенос заказа. */
38256
+ disableUpdateOrderTimeBeforeMinutes?: number;
38257
+ /** Сообщение пользователю при недоступной записи. */
38258
+ unavailableBookingMessage?: string;
38259
+ /** Название поля со скидкой в процентах. */
38260
+ discountPercentageFieldName?: string;
38261
+ /** Интервал между событиями в секундах. */
38262
+ marginTimeSec?: number;
38263
+ /** Задержка автоматического подключения уведомлений в секундах. */
38264
+ autoStartNotificationDelaySeconds?: number;
38265
+ /**
38266
+ * Скрывает UI подключения уведомлений Telegram и Max через точный тег `HideMessengerNotifications`.
38267
+ * BehaviorSettings API также читает точный legacy alias; в его состоянии флаг всегда boolean.
38268
+ */
38269
+ hideMessengerConnectUi?: boolean;
38270
+ /** Полный набор соглашений; пустой массив очищает набор. */
38271
+ agreementItems?: {
38272
+ /** Положительный уникальный номер соглашения. */
38273
+ index: number;
38274
+ /** Текст соглашения; хотя бы text или link должны быть заданы. */
38275
+ text?: string;
38276
+ /** Ссылка соглашения; кодирование хранения выполняет SDK. */
38277
+ link?: string;
38278
+ }[];
38279
+ /** Таймаут перехода после оплаты в секундах. */
38280
+ paymentRedirectTimeoutSec?: number;
38281
+ };
38282
+ /** Минимальная структура поведения ресурса (сейчас: только margin between events). */
38283
+ type ResourceBehaviorSettings = {
38284
+ marginTimeSec?: number;
38285
+ /**
38286
+ * Идентификатор TTLock-замка в формате тега `<lockNumber>:lockId`.
38287
+ */
38288
+ lockId?: number;
38289
+ };
38290
+
38291
+ /** Причина неполного предметного чтения конкретной настройки. */
38292
+ declare enum ServiceBehaviorSettingsIssueReason {
38293
+ /** Есть некорректное значение; поле исключено из предметного снимка. */
38294
+ InvalidValue = "InvalidValue",
38295
+ /** Есть противоречивые значения; порядок не определяет результат. */
38296
+ AmbiguousValue = "AmbiguousValue"
38297
+ }
38298
+ /** Диагностика настройки без раскрытия внутреннего представления. */
38299
+ interface ServiceBehaviorSettingsIssue {
38300
+ /** Поле, значение которого не может быть достоверно прочитано. */
38301
+ field: keyof ServiceBehaviorSettings;
38302
+ /** Некорректное значение либо несколько противоречивых значений. */
38303
+ reason: ServiceBehaviorSettingsIssueReason;
38304
+ }
38305
+ /** Проверенное предметное состояние услуги. */
38306
+ interface ServiceBehaviorSettingsState {
38307
+ /** ID услуги, для которой выполнено чтение. */
38308
+ serviceId: string;
38309
+ /** Положительная int32 meta.version всей услуги, не отдельный счётчик настроек. */
38310
+ version: number;
38311
+ /** Прочитанные значения; поля с issues не являются полным снимком. */
38312
+ settings: ServiceBehaviorSettings;
38313
+ /** Проблемы предметного чтения; пустой массив означает полный снимок настроек. */
38314
+ issues: ServiceBehaviorSettingsIssue[];
38315
+ }
38316
+ /** Результат изменения; поля состояния имеют смысл из ServiceBehaviorSettingsState. */
38317
+ interface ServiceBehaviorSettingsUpdateResult extends ServiceBehaviorSettingsState {
38318
+ /** Был ли PUT; settings описывают ожидаемый результат, без автоматического readback. */
38319
+ changed: boolean;
38320
+ }
38321
+ /** Управление записью BehaviorSettings; проверку версии выбирает потребитель. */
38322
+ interface ServiceBehaviorSettingsUpdateOptions {
38323
+ /** Ожидаемая meta.version: 1..2147483647. При наличии включает проверку указанной версии. */
38324
+ versionToCheck?: number;
38325
+ /** true включает CAS по версии внутреннего GET, если versionToCheck не задан. По умолчанию CAS выключен. */
38326
+ checkVersion?: true;
38327
+ /** true (по умолчанию) сохраняет пропущенные поля; false полностью заменяет настройки. */
38328
+ mergeParameters?: boolean;
38329
+ /** Выбранный профиль только для внутреннего GET; не предоставляет право записи. */
38330
+ profileId?: string | null;
38331
+ /** Гостевой контекст только для GET; не Bearer и не право записи. */
38332
+ securityToken?: string | null;
38333
+ /** Создание объявления при PUT; отсутствие/null означает false. */
38334
+ isNeedAnnouncement?: boolean | null;
38335
+ /** Отмена чтения и записи; после отмены автоматических запросов нет. */
38336
+ signal?: AbortSignal;
38337
+ }
38338
+
38339
+ type ServiceItemApi = NormalizedPublicity<ServiceItemApiDto>;
38340
+ type ResourceGroup = NonNullable<ServiceItemApi["resourceGroupList"]>[number];
38341
+ type BookingProperties = NonNullable<ResourceGroup["bookingProperties"]>;
38342
+ type CreateOrderReq = CreateOrderReqDto;
38343
+ type OrderResp = OrderRespRead;
38344
+ type SearchServiceResourcesReq = SearchServiceResourcesReqDto;
38345
+ type SearchServiceResourcesResp = SearchServiceResourcesRespRead;
38346
+ type StepDescription = StepDescriptionDto;
38347
+ type SessionDurationProperties = SessionDurationPropertiesDto;
38348
+ type GetServiceWorkloadInfoRequest = GetServiceWorkloadInfoRequestDto;
38349
+ type GetServiceWorkloadInfoResp = GetServiceWorkloadInfoRespRead;
38350
+ type GetTimetableStatisticsRequest = GetTimetableStatisticsRequestDto;
38351
+ type TimetableStatisticsResp = TimetableStatisticsRespDto;
38352
+ type GetCheckInScheduleReq = GetCheckInScheduleReqDto;
38353
+ type GetCheckInScheduleResp = GetCheckInScheduleRespDto;
38354
+ type GetReCheckInScheduleReq = GetReCheckInScheduleReqDto;
38355
+ type UpdateOrderReq = UpdateOrderReqDto;
38356
+ type UpdateOrderInfoReq = UpdateOrderInfoReqDto;
38357
+ type ChangeOrderServiceReq = ChangeOrderServiceReqDto;
38358
+ /**
38359
+ * Публичная доменная структура для настройки поведения услуги.
38360
+ * Внутри SDK маппится в `service.tags`.
38361
+ * orderName задаёт название для отображения в приложении, не серверное имя создаваемого заказа.
38362
+ */
38363
+ type ServiceBehaviorSettings = ServiceImplicitTagParams;
38364
+
38365
+ /**
38366
+ * SDK-тип услуги: OpenAPI `ServiceItem` + удобный доменный слой.
38367
+ * `behaviorSettings` сериализуется/десериализуется через `tags` внутри SDK.
38368
+ */
38369
+ type ServiceItem = TorrowItemFromDto<Omit<ServiceItemApi, "priceInfo" | "executorIdList" | "resourceGroupList" | "appendixList" | "stepDescriptionList" | "caseActionList" | "loyaltyTransactionPropertiesList">> & {
38370
+ /** Цена карточки: optional settings без null; исходная обязательность родителя сохранена. */
38371
+ priceInfo?: ItemPriceInfoRead;
38372
+ /** Профили исполнителей; серверный null удаляет optional-поле, явный [] сохраняется. */
38373
+ executorIdList?: NonNullable<ServiceItemApi["executorIdList"]>;
38374
+ /** Группы ресурсов; серверный null удаляет optional-поле, вложенные коллекции групп сохраняются. */
38375
+ resourceGroupList?: NonNullable<ServiceItemApi["resourceGroupList"]>;
38376
+ /** Приложения услуги; серверный null удаляет optional-поле, явный [] сохраняется. */
38377
+ appendixList?: NonNullable<ServiceItemApi["appendixList"]>;
38378
+ /** Шаги регистрации; серверный null удаляет optional-поле, параметры шагов не изменяются. */
38379
+ stepDescriptionList?: NonNullable<ServiceItemApi["stepDescriptionList"]>;
38380
+ /** Действия события; серверный null удаляет optional-поле, вложенные настройки не изменяются. */
38381
+ caseActionList?: NonNullable<ServiceItemApi["caseActionList"]>;
38382
+ /** Правила лояльности; серверный null удаляет optional-поле, вложенные транзакции сохраняются. */
38383
+ loyaltyTransactionPropertiesList?: NonNullable<ServiceItemApi["loyaltyTransactionPropertiesList"]>;
38384
+ /** Настройки поведения, декодированные из hash-tags услуги. */
38385
+ behaviorSettings?: ServiceBehaviorSettings;
38386
+ };
38387
+ type ServiceItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<TorrowItemFromDto<ServiceItemApi>> & {
38388
+ /** Настройки поведения, сериализуемые в hash-tags услуги. */
38389
+ behaviorSettings?: ServiceBehaviorSettings;
38390
+ };
38391
+ /** Полный update услуги: атрибуты create/update без numeratorInfo; meta сохраняет CAS-версию самого item, не персональной связи. Полный GET-снимок допускается структурно, runtime отбрасывает numeratorInfo. */
38392
+ type ServiceItemForUpdate = Omit<ServiceItemForCreateOrUpdate, "numeratorInfo"> & Pick<ServiceItem, "meta">;
38393
+ /** Частичное изменение услуги; name/image наследуют назначение {@link TorrowItemPatchFields}; priceInfo заменяет всю ценовую область согласно ItemPricePatchFields. Остальные поля ниже описывают полную замену выбранного значения. */
38394
+ type ServiceItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38395
+ /** Описание услуги; null/empty очищает, пропуск сохраняет. */
38396
+ description?: string | null;
38397
+ /** Идентификатор места оказания услуги; null снимает привязку. */
38398
+ placeId?: string | null;
38399
+ /** Текстовое описание места; null/empty очищает. */
38400
+ place?: string | null;
38401
+ /** Полное расписание; вложенные диапазоны заменяются целиком, null снимает структуру. */
38402
+ schedule?: NonNullable<ServiceItemApi["schedule"]> | null;
38403
+ /** Длительность бронирования в секундах; null снимает ограничение. */
38404
+ bookingDuration?: number | null;
38405
+ /** Числовой вид расписания; null снимает настройку. */
38406
+ timetableView?: number | null;
38407
+ /** Граница закрытия регистрации по wire-контракту; null снимает. */
38408
+ registrationClose?: number | null;
38409
+ /** Граница открытия регистрации по wire-контракту; null снимает. */
38410
+ registrationOpen?: number | null;
38411
+ /** Максимальное число клиентов; null снимает лимит. */
38412
+ maxConsumerQuantity?: number | null;
38413
+ /** Полная замена списка профилей исполнителей; [] очищает. */
38414
+ executorIdList?: NonNullable<ServiceItemApi["executorIdList"]>;
38415
+ /** Требование одобрения; false — значение, null снимает настройку. */
38416
+ needApproval?: boolean | null;
38417
+ /** Шаг сетки времени; null снимает настройку. */
38418
+ timeAlignment?: number | null;
38419
+ /** Лимит одновременно действующих заказов услуги; null снимает. */
38420
+ orderQuote?: number | null;
38421
+ /** Пауза между слотами в секундах; null снимает. */
38422
+ marginTime?: number | null;
38423
+ /** Доля использования исполнителя по wire-контракту; null снимает. */
38424
+ executorUsagePercent?: number | null;
38425
+ /** Опорная дата первой недели; Date сериализуется штатным SDK, null снимает. */
38426
+ firstWeekDate?: Date | null;
38427
+ /** Группа допустимых клиентов; null снимает привязку. */
38428
+ clientGroupId?: string | null;
38429
+ /** Полный список ресурсных групп; [] очищает, группы не сливаются по id. */
38430
+ resourceGroupList?: NonNullable<ServiceItemApi["resourceGroupList"]>;
38431
+ /** Полная структура запрашиваемых сведений участника; null снимает. */
38432
+ participateFieldRequirements?: NonNullable<ServiceItemApi["participateFieldRequirements"]> | null;
38433
+ /** Полный список приложений; [] очищает. */
38434
+ appendixList?: NonNullable<ServiceItemApi["appendixList"]>;
38435
+ /** Полная конфигурация длительности сессии; null снимает. */
38436
+ sessionDurationProperties?: NonNullable<ServiceItemApi["sessionDurationProperties"]> | null;
38437
+ /** Автоматический check-in всех связанных событий; false выключает, null не принимается. */
38438
+ checkInAllCases?: boolean;
38439
+ /** Полный список шагов регистрации; [] очищает. */
38440
+ stepDescriptionList?: NonNullable<ServiceItemApi["stepDescriptionList"]>;
38441
+ /** Подпись основной кнопки; null/empty снимает. */
38442
+ buttonName?: string | null;
38443
+ /** Полная конфигурация доступа и минимального интервала check-in; null снимает. */
38444
+ checkinPermission?: NonNullable<ServiceItemApi["checkinPermission"]> | null;
38445
+ /** Полный список автоматических действий события; [] очищает. */
38446
+ caseActionList?: NonNullable<ServiceItemApi["caseActionList"]>;
38447
+ /** Полный список правил лояльности; [] очищает, транзакции SDK не вычисляет. */
38448
+ loyaltyTransactionPropertiesList?: NonNullable<ServiceItemApi["loyaltyTransactionPropertiesList"]>;
38449
+ };
38450
+ type ServiceResourceStepUsageType = Extract<NonNullable<ResourceGroup["usageType"]>, "Specification" | "Rent" | "Sale">;
38451
+ interface AddServiceResourceGroupInput {
38452
+ key: string;
38453
+ groupId?: string;
38454
+ groupName: string;
38455
+ minResources?: number | null;
38456
+ maxResources?: number | null;
38457
+ maxTotalAmount?: number | null;
38458
+ quickFilterTags?: string[] | null;
38459
+ bookingProperties?: BookingProperties | null;
38460
+ }
38461
+ interface AddServiceResourceStepInput extends AddServiceResourceGroupInput {
38462
+ usageType: ServiceResourceStepUsageType;
38463
+ stepOrder?: number;
38464
+ description?: string | null;
38465
+ autoChoiceResource?: boolean;
38466
+ hiddenStep?: boolean;
38467
+ hideResourceDetail?: boolean;
38468
+ }
38469
+ type AddServicePaymentGroupInput = AddServiceResourceGroupInput;
38470
+ interface ServiceBuildResult {
38471
+ body: ServiceItemForCreateOrUpdate;
38472
+ resourceGroupIds: Record<string, string>;
38473
+ }
38474
+ type SessionDurationType = NonNullable<SessionDurationProperties["sessionDurationType"]>;
38475
+ type TimeSelectionType = NonNullable<SessionDurationProperties["timeSelectionType"]>;
38476
+ type StateManagementType = NonNullable<SessionDurationProperties["stateManagementType"]>;
38477
+ type SessionPrecisionType = NonNullable<SessionDurationProperties["sessionPrecisionType"]>;
38478
+ declare const SessionDurationTypeValues: {
38479
+ readonly Unknown: "UnknownSessionDurationType";
38480
+ readonly None: "SessionDurationNone";
38481
+ readonly Custom: "Custom";
38482
+ readonly Constant: "Constant";
38483
+ readonly Sum: "Sum";
38484
+ };
38485
+ declare const TimeSelectionTypeValues: {
38486
+ readonly Unknown: "UnknownTimeSelectionType";
38487
+ readonly None: "TimeSelectionNone";
38488
+ readonly Consumer: "Consumer";
38489
+ readonly Executor: "Executor";
38490
+ };
38491
+ declare const StateManagementTypeValues: {
38492
+ readonly Unknown: "UnknownStateManagementType";
38493
+ readonly Auto: "Auto";
38494
+ readonly Manual: "Manual";
38495
+ };
38496
+ declare const SessionPrecisionTypeValues: {
38497
+ readonly Unknown: "UnknownSessionPrecisionType";
38498
+ readonly None: "SessionPrecisionNone";
38499
+ readonly DateTime: "DateTime";
38500
+ readonly Date: "Date";
38501
+ };
38502
+
38503
+ /** Провайдер оплаты из OpenAPI; строковый ввод и неизвестный серверный sentinel сохраняются. */
38504
+ type PaymentProviderType = OpenApiSchemas["PaymentProviderType"];
38505
+ /** Именованные значения общего wire-контракта провайдера оплаты. */
38506
+ declare enum PaymentProviderTypeValues {
38507
+ /** Неизвестный провайдер серверного контракта. */
38508
+ Unknown = "UnknownPaymentProviderType",
38509
+ /** Наличный расчёт. */
38510
+ Cash = "Cash",
38511
+ /** Внешняя ссылка оплаты. */
38512
+ CustomLink = "CustomLink",
38513
+ /** Интеграция YooMoney. */
38514
+ YooMoney = "YooMoney",
38515
+ /** Интеграция Qiwi P2P. */
38516
+ QiwiP2P = "QiwiP2P",
38517
+ /** Серверная ветвь Qiwi B2B. */
38518
+ QiwiB2B = "QiwiB2B",
38519
+ /** Интеграция YooKassa. */
38520
+ YooKassa = "YooKassa",
38521
+ /** Интеграция Сбербанка. */
38522
+ Sberbank = "Sberbank",
38523
+ /** Интеграция Уралсиб. */
38524
+ Uralsib = "Uralsib",
38525
+ /** Интеграция Альфа-Банка. */
38526
+ Alfabank = "Alfabank",
38527
+ /** Интеграция RoboKassa. */
38528
+ RoboKassa = "RoboKassa",
38529
+ /** Интеграция PayKeeper. */
38530
+ PayKeeper = "PayKeeper",
38531
+ /** Серверная ветвь GateLine. */
38532
+ GateLine = "GateLine",
38533
+ /** Интеграция Tinkoff. */
38534
+ Tinkoff = "Tinkoff",
38535
+ /** Интеграция Prodamus. */
38536
+ Prodamus = "Prodamus",
38537
+ /** Тестовый провайдер. */
38538
+ Mock = "MockPaymentProvider"
38539
+ }
38540
+
38541
+ /** Вид условия использования ресурса из OpenAPI, включая неизвестный серверный sentinel. */
38542
+ type UsageConditionType = OpenApiSchemas["UsageConditionType"];
38543
+ /** Полный wire-набор для валидации patch и справочника; публичное подмножество задано отдельно. */
38544
+ declare enum UsageConditionTypeWireValues {
38545
+ /** Сервер не определил вид условия. */
38546
+ Unknown = "UnknownUsageConditionType",
38547
+ /** Условие использования отсутствует. */
38548
+ None = "None",
38549
+ /** Указанные ресурсы исключают использование текущего. */
38550
+ Exclusion = "Exclusion",
38551
+ /** Указанные ресурсы используются дополнительно к текущему. */
38552
+ Additional = "Additional"
38553
+ }
38554
+ /** Совместимый публичный набор: три прежних ключа с типами строковых литералов. */
38555
+ declare const UsageConditionTypeValues: {
38556
+ /** Условие использования отсутствует. */
38557
+ readonly None: "None";
38558
+ /** Исключающее условие использования. */
38559
+ readonly Exclusion: "Exclusion";
38560
+ /** Дополнительное условие использования. */
38561
+ readonly Additional: "Additional";
38562
+ };
38563
+
38564
+ /** Общий текст конфигурации оплаты; назначение совпадает с серверным PaymentParameters. */
38565
+ interface PaymentPatchText {
38566
+ /** Текст оплаты; null/empty снимает текстовую часть. */
38567
+ text?: string | null;
38568
+ /** Сообщение до оплаты; null/empty снимает его. */
38569
+ beforePayMessage?: string | null;
38570
+ /** Сообщение после оплаты; null/empty снимает его. */
38571
+ afterPayMessage?: string | null;
38572
+ }
38573
+ /** Предметные параметры выбранного провайдера. */
38574
+ type PaymentPatchParameters<TFields extends object = Record<never, never>> = PaymentPatchText & TFields;
38575
+ /** Общие атрибуты RBS банков; значения проверяет сервер/провайдер. */
38576
+ interface BankPatchFields {
38577
+ /** Имя пользователя интеграции банка. */
38578
+ username: string;
38579
+ /** Пароль интеграции; не выводить в диагностике. */
38580
+ password: string;
38581
+ /** Использование тестовой среды; false сохраняется без подстановки defaults SDK. */
38582
+ isTest?: boolean;
38583
+ }
38584
+ /** Атрибуты провайдера с URL и парой доступа. */
38585
+ interface PaykeeperPatchFields extends BankPatchFields {
38586
+ /** URL интеграции провайдера, передаётся без нормализации SDK. */
38587
+ url: string;
38588
+ }
38589
+ /** Настройки оплаты конкретного провайдера; numeratorId/waitForConfirmation наследуют общий wire-смысл. */
38590
+ interface PaymentPatchConfigurationBase<TProvider extends PaymentProviderType> {
38591
+ /** Серверный провайдер; строковый тип выводится из общего enum, сохраняя ввод литерала и связь с параметрами. */
38592
+ paymentProviderType: `${TProvider}`;
38593
+ /** Связанный нумератор оплаты; null снимает ссылку. */
38594
+ numeratorId?: string | null;
38595
+ /** Ожидать подтверждения; false не считается пропуском, null снимает значение. */
38596
+ waitForConfirmation?: boolean | null;
38597
+ }
38598
+ /** Обязательность параметров следует безусловным cast/ForString в серверном mapper. */
38599
+ type PaymentPatchConfiguration<TProvider extends PaymentProviderType, TParameters, TRequired extends boolean = false> = PaymentPatchConfigurationBase<TProvider> & (TRequired extends true ? {
38600
+ /** Полная структура параметров с технически обязательными строками; их действительность проверяет сервер. */
38601
+ parameters: TParameters;
38602
+ } : {
38603
+ /** Guarded серверная ветвь допускает отсутствие/null; переданный объект имеет собственные обязательные поля. */
38604
+ parameters?: TParameters | null;
38605
+ });
38606
+ /** Полиморфная конфигурация Resource payment patch; SDK не выполняет платежи и не проверяет credentials. */
38607
+ type ResourcePaymentPatchProperties = PaymentPatchConfiguration<PaymentProviderTypeValues.Cash, PaymentPatchParameters> | PaymentPatchConfiguration<PaymentProviderTypeValues.CustomLink, PaymentPatchParameters<{
38608
+ /** URL внешней формы оплаты. */ url: string;
38609
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.YooMoney, PaymentPatchParameters<{
38610
+ /** Идентификатор кошелька. */ accountId: string;
38611
+ /** Секрет проверки уведомлений; чувствительное значение. */ notificationSecret: string;
38612
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.QiwiP2P, PaymentPatchParameters<{
38613
+ /** Публичный ключ интеграции. */ publicKey: string;
38614
+ /** Закрытый ключ интеграции; чувствительное значение. */ privateKey: string;
38615
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.YooKassa, PaymentPatchParameters<{
38616
+ /** Идентификатор магазина. */ shopId: string;
38617
+ /** Секретный ключ магазина. */ secretKey: string;
38618
+ /** Серверное обозначение системы налогообложения. */ taxation: string;
38619
+ }>> | PaymentPatchConfiguration<PaymentProviderTypeValues.Sberbank, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Alfabank, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Uralsib, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.RoboKassa, PaymentPatchParameters<{
38620
+ /** Имя магазина. */ shopName: string;
38621
+ /** Первый пароль интеграции; чувствительное значение. */ password1: string;
38622
+ /** Второй пароль интеграции; чувствительное значение. */ password2: string;
38623
+ /** Тестовая среда; false передаётся явно. */ isTest?: boolean;
38624
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.PayKeeper, PaymentPatchParameters<PaykeeperPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Prodamus, PaymentPatchParameters<{
38625
+ /** Секретный ключ интеграции. */ secretKey: string;
38626
+ /** URL формы оплаты. */ url: string;
38627
+ /** Тестовая среда; false передаётся явно. */ isTest?: boolean;
38628
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Tinkoff, PaymentPatchParameters<{
38629
+ /** Терминал интеграции. */ terminal: string;
38630
+ /** Пароль терминала; чувствительное значение. */ password: string;
38631
+ /** Серверное обозначение системы налогообложения. */ taxation: string;
38632
+ /** Параметр распределения платежа; SDK не интерпретирует строку. */ split?: string;
38633
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Mock, PaymentPatchParameters<{
38634
+ /** Базовый URL перенаправления тестового провайдера. */ redirectBaseUrl?: string;
38635
+ /** Тестовый код ошибки int32; wire-опечатка Responce сохранена. */ errorResponceCode?: number | null;
38636
+ /** Отложенное создание тестового платежа; Date SDK, null снимает дату. */ createAfter?: Date | null;
38637
+ }>> | PaymentPatchConfiguration<PaymentProviderTypeValues.Unknown | PaymentProviderTypeValues.QiwiB2B | PaymentProviderTypeValues.GateLine, PaymentPatchText>;
38638
+ /** Предметные параметры всех ветвей payment patch; paymentProviderType выбирает класс, text/beforePayMessage/afterPayMessage — общие сообщения, остальные атрибуты относятся к выбранному провайдеру в ResourcePaymentPatchProperties. */
38639
+ type ResourcePaymentPatchParameters = NonNullable<ResourcePaymentPatchProperties["parameters"]>;
38640
+
38641
+ type ResourceItemApi = NormalizedPublicity<ResourceItemApiDto>;
38642
+ type ServiceDescription = NonNullable<ResourceItemApi["serviceDescriptions"]>[number];
38643
+ type UsageCondition = NonNullable<ResourceItemApi["usageCondition"]>;
38644
+ /** Дополнительные и исключающие условия; отсутствие условия и неизвестный sentinel сюда не входят. */
38645
+ type ResourceUsageConditionType = Exclude<UsageConditionType, `${UsageConditionTypeWireValues.Unknown | UsageConditionTypeWireValues.None}`>;
38646
+ type WorkloadPeriod = WorkloadPeriodDto;
38647
+ type PickOrderReq = PickOrderReqDto;
38648
+ type PickOrderResp = PickOrderRespRead;
38649
+ type ReturnOrderReq = ReturnOrderReqDto;
38650
+ type ReturnOrderResp = ReturnOrderRespRead;
38651
+ type ResourceItem = TorrowItemFromDto<Omit<ResourceItemApi, "item" | "parentResource" | "priceInfo" | "serviceDescriptions" | "appendixList" | "loyaltyTransactionPropertiesList">> & {
38652
+ /** Связанный элемент с подготовленными общими read-полями; отсутствие элемента сохраняется. */
38653
+ item?: TorrowItem;
38654
+ /** Родительский ресурс с подготовленными общими read-полями; отсутствие родителя сохраняется. */
38655
+ parentResource?: TorrowItem;
38656
+ /** Цена карточки: optional settings без null; исходная обязательность родителя сохранена. */
38657
+ priceInfo?: ItemPriceInfoRead;
38658
+ /** Связи с услугами; серверный null удаляет ключ, [] сохраняется. Элементы не преобразуются. */
38659
+ serviceDescriptions?: NonNullable<ResourceItemApi["serviceDescriptions"]>;
38660
+ /** Приложения; серверный null удаляет ключ, [] сохраняется. Даты и остальные поля элементов сохраняются. */
38661
+ appendixList?: NonNullable<ResourceItemApi["appendixList"]>;
38662
+ /** Правила лояльности; серверный null удаляет ключ, вложенные transactionValues не нормализуются. */
38663
+ loyaltyTransactionPropertiesList?: NonNullable<ResourceItemApi["loyaltyTransactionPropertiesList"]>;
38664
+ /** Настройки поведения, декодированные из hash-tags ресурса. */
38665
+ behaviorSettings?: ResourceBehaviorSettings;
38666
+ };
38667
+ type UsageType = ResourceItemApi["usageType"];
38668
+ declare const UsageTypeValues: {
38669
+ readonly Unknown: "UnknownUsageType";
38670
+ readonly Specification: "Specification";
38671
+ readonly Rent: "Rent";
38672
+ readonly Sale: "Sale";
38673
+ readonly Payment: "Payment";
38674
+ readonly Ticket: "Ticket";
38675
+ };
38676
+ type ResourceItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<TorrowItemFromDto<ResourceItemApi>> & {
38677
+ /** Настройки поведения, сериализуемые в hash-tags ресурса. */
38678
+ behaviorSettings?: ResourceBehaviorSettings;
38679
+ };
38680
+ /** Подтверждённые обычные поля root Resource update; name/image наследуют общий контракт. */
38681
+ interface ResourceItemPatchFields extends TorrowItemPatchFields {
38682
+ /** Описание ресурса; null/empty очищает содержимое, пропуск сохраняет. */
38683
+ description?: string | null;
38684
+ /** Идентификатор связанного элемента; null снимает связь. Это не target ID самого patch. */
38685
+ itemId?: string | null;
38686
+ /** Идентификатор родительского ресурса; null снимает связь. */
38687
+ parentResourceId?: string | null;
38688
+ /** Идентификатор связанного расписания; null снимает связь. */
38689
+ timetableId?: string | null;
38690
+ /** Полная замена расписания с Date SDK; null снимает расписание. */
38691
+ schedule?: NonNullable<ResourceItemApi["schedule"]> | null;
38692
+ /** Серверный способ использования; UnknownUsageType нормализует сервер, create default не применяется. */
38693
+ usageType?: NonNullable<ResourceItemApi["usageType"]>;
38694
+ /** Полная замена связей с услугами; [] снимает список, предметные ограничения проверяет сервер. */
38695
+ serviceDescriptions?: NonNullable<ResourceItemApi["serviceDescriptions"]>;
38696
+ /** Пользовательский код; null/empty очищает содержимое. */
38697
+ code?: string | null;
38698
+ /** Длительность/расчётная единица в секундах (int32); null снимает значение. */
38699
+ duration?: number | null;
38700
+ /** Полная замена количественных свойств, включая inventoryDate Date; null снимает структуру. */
38701
+ amountProperties?: NonNullable<ResourceItemApi["amountProperties"]> | null;
38702
+ /** Полная замена условий использования; null снимает структуру. */
38703
+ usageCondition?: NonNullable<ResourceItemApi["usageCondition"]> | null;
38704
+ /** Полная замена приложений с Date SDK; [] снимает список. */
38705
+ appendixList?: NonNullable<ResourceItemApi["appendixList"]>;
38706
+ /** Полная замена конфигурации оплаты; null снимает её, платежи не выполняются. */
38707
+ paymentProperties?: ResourcePaymentPatchProperties | null;
38708
+ /** Полная замена настроек операций лояльности; [] снимает список, баланс не пересчитывается SDK. */
38709
+ loyaltyTransactionPropertiesList?: NonNullable<ResourceItemApi["loyaltyTransactionPropertiesList"]>;
38710
+ }
38711
+ /** Частичное изменение ресурса с одной из взаимоисключающих форм цены ItemPricePatchFields. */
38712
+ type ResourceItemPatch = ResourceItemPatchFields & ItemPricePatchFields;
38713
+ interface ResourceServiceBindingOptions {
38714
+ usageAmount?: number | null;
38715
+ sortIndex?: number | null;
38716
+ }
38717
+ interface ResourceBuildResult {
38718
+ body: ResourceItemForCreateOrUpdate;
38719
+ }
38720
+
38721
+ /** Именованная read-модель ItemLink; wire DTO и входы записи сохраняют исходный контракт. */
38722
+ type ItemLinkRead = Omit<NormalizedPublicity<OpenApiSchemas["ItemLink"]>, "tags"> & {
38723
+ /** Теги; серверный null означает отсутствие ключа. */
38724
+ tags?: string[];
38725
+ };
38726
+ /** Персональные сведения карточки: только два setter-списка исключают null. */
38727
+ type PersonalInfoRead = Omit<OpenApiSchemas["PersonalInfo"], "personalReminders" | "notificationWayList"> & {
38728
+ /** Напоминания; серверный null означает отсутствие ключа, явный [] сохраняется. */
38729
+ personalReminders?: NonNullable<OpenApiSchemas["PersonalInfo"]["personalReminders"]>;
38730
+ /** Способы уведомления; вложенные nullable списки элементов не изменяются. */
38731
+ notificationWayList?: NonNullable<OpenApiSchemas["PersonalInfo"]["notificationWayList"]>;
38732
+ };
38733
+ /** Именованная read-модель CasePersonalInfo; wire DTO и входы записи сохраняют исходный контракт. */
38734
+ type CasePersonalInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["CasePersonalInfo"]>, "ticketResource" | "paymentResource" | "personalReminders" | "notificationWayList"> & {
38735
+ /** Напоминания; серверный null означает отсутствие ключа, явный [] сохраняется. */
38736
+ personalReminders?: NonNullable<OpenApiSchemas["CasePersonalInfo"]["personalReminders"]>;
38737
+ /** Способы уведомления; вложенные nullable списки элементов не изменяются. */
38738
+ notificationWayList?: NonNullable<OpenApiSchemas["CasePersonalInfo"]["notificationWayList"]>;
38739
+ /** Предметные данные ticketResource с подготовленными вложенными карточками. */
38740
+ ticketResource?: ResourceItem;
38741
+ /** Предметные данные paymentResource с подготовленными вложенными карточками. */
38742
+ paymentResource?: ResourceItem;
38743
+ };
38744
+ /** Именованная read-модель NoteView; wire DTO и входы записи сохраняют исходный контракт. */
38745
+ type NoteViewRead = Omit<NormalizedPublicity<OpenApiSchemas["NoteView"]>, "itemLink" | "itemObject"> & {
38746
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38747
+ itemLink?: ItemLinkRead;
38748
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38749
+ itemObject?: NoteItem;
38750
+ };
38751
+ /** Именованная read-модель ContactView; wire DTO и входы записи сохраняют исходный контракт. */
38752
+ type ContactViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ContactView"]>, "itemLink" | "itemObject"> & {
38753
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38754
+ itemLink?: ItemLinkRead;
38755
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38756
+ itemObject?: ContactItem;
38757
+ };
38758
+ /** Именованная read-модель ContextView; wire DTO и входы записи сохраняют исходный контракт. */
38759
+ type ContextViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ContextView"]>, "itemLink" | "itemObject"> & {
38760
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38761
+ itemLink?: ItemLinkRead;
38762
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38763
+ itemObject?: ContextItem;
38764
+ };
38765
+ /** Именованная read-модель CalendarView; wire DTO и входы записи сохраняют исходный контракт. */
38766
+ type CalendarViewRead = Omit<NormalizedPublicity<OpenApiSchemas["CalendarView"]>, "itemLink" | "itemObject"> & {
38767
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38768
+ itemLink?: ItemLinkRead;
38769
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38770
+ itemObject?: CalendarItem;
38771
+ };
38772
+ /** Именованная read-модель CaseView; wire DTO и входы записи сохраняют исходный контракт. */
38773
+ type CaseViewRead = Omit<NormalizedPublicity<OpenApiSchemas["CaseView"]>, "itemLink" | "itemObject"> & {
38774
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38775
+ itemLink?: ItemLinkRead;
38776
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38777
+ itemObject?: CaseItem;
38778
+ };
38779
+ /** Именованная read-модель LoyaltyCardView; wire DTO и входы записи сохраняют исходный контракт. */
38780
+ type LoyaltyCardViewRead = Omit<NormalizedPublicity<OpenApiSchemas["LoyaltyCardView"]>, "itemLink" | "itemObject"> & {
38781
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38782
+ itemLink?: ItemLinkRead;
38783
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38784
+ itemObject?: LoyaltyCardItem;
38785
+ };
38786
+ /** Именованная read-модель LoyaltySystemView; wire DTO и входы записи сохраняют исходный контракт. */
38787
+ type LoyaltySystemViewRead = Omit<NormalizedPublicity<OpenApiSchemas["LoyaltySystemView"]>, "itemLink" | "itemObject"> & {
38788
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38789
+ itemLink?: ItemLinkRead;
38790
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38791
+ itemObject?: LoyaltySystemItem;
38792
+ };
38793
+ /** Именованная read-модель ServiceView; wire DTO и входы записи сохраняют исходный контракт. */
38794
+ type ServiceViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ServiceView"]>, "itemLink" | "itemObject" | "tags"> & {
38795
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38796
+ itemLink?: ItemLinkRead;
38797
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38798
+ itemObject?: ServiceItem;
38799
+ /** Теги; серверный null означает отсутствие ключа. */
38800
+ tags?: string[];
38801
+ };
38802
+ /** Именованная read-модель ResourceView; wire DTO и входы записи сохраняют исходный контракт. */
38803
+ type ResourceViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ResourceView"]>, "itemLink" | "itemObject" | "tags"> & {
38804
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38805
+ itemLink?: ItemLinkRead;
38806
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38807
+ itemObject?: ResourceItem;
38808
+ /** Теги; серверный null означает отсутствие ключа. */
38809
+ tags?: string[];
38810
+ };
38811
+ /** Именованная read-модель ParticipantView; wire DTO и входы записи сохраняют исходный контракт. */
38812
+ type ParticipantViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ParticipantView"]>, "itemLink" | "itemObject"> & {
38813
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38814
+ itemLink?: ItemLinkRead;
38815
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38816
+ itemObject?: ContactItem;
38817
+ };
38818
+ /** Именованная read-модель CaseParticipantView; wire DTO и входы записи сохраняют исходный контракт. */
38819
+ type CaseParticipantViewRead = Omit<NormalizedPublicity<OpenApiSchemas["CaseParticipantView"]>, "itemLink" | "itemObject" | "ticketResource" | "paymentResource"> & {
38820
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38821
+ itemLink?: ItemLinkRead;
38822
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38823
+ itemObject?: ContactItem;
38824
+ /** Предметные данные ticketResource с подготовленными вложенными карточками. */
38825
+ ticketResource?: ResourceItem;
38826
+ /** Предметные данные paymentResource с подготовленными вложенными карточками. */
38827
+ paymentResource?: ResourceItem;
38828
+ };
38829
+ /** Именованная read-модель TimetableCase; wire DTO и входы записи сохраняют исходный контракт. */
38830
+ type TimetableCaseRead = Omit<NormalizedPublicity<OpenApiSchemas["TimetableCase"]>, "itemLink" | "itemObject"> & {
38831
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38832
+ itemLink?: ItemLinkRead;
38833
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38834
+ itemObject?: CaseItem;
38835
+ };
38836
+ /** Именованная read-модель ItemView; wire DTO и входы записи сохраняют исходный контракт. */
38837
+ type ItemViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ItemView"]>, "itemLink" | "itemObject"> & {
38838
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38839
+ itemLink?: ItemLinkRead;
38840
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38841
+ itemObject?: TorrowItem;
38842
+ };
38843
+ /** Именованная read-модель Feedback; wire DTO и входы записи сохраняют исходный контракт. */
38844
+ type FeedbackRead = Omit<NormalizedPublicity<OpenApiSchemas["Feedback"]>, "author"> & {
38845
+ /** Предметные данные author с подготовленными вложенными карточками. */
38846
+ author?: TorrowItem;
38847
+ };
38848
+ /** Именованная read-модель ItemFeedback; wire DTO и входы записи сохраняют исходный контракт. */
38849
+ type ItemFeedbackRead = Omit<NormalizedPublicity<OpenApiSchemas["ItemFeedback"]>, "feedback"> & {
38850
+ /** Предметные данные feedback с подготовленными вложенными карточками. */
38851
+ feedback?: FeedbackRead;
38852
+ };
38853
+ /** Именованная read-модель UserFeedback; wire DTO и входы записи сохраняют исходный контракт. */
38854
+ type UserFeedbackRead = Omit<NormalizedPublicity<OpenApiSchemas["UserFeedback"]>, "itemFeedback"> & {
38855
+ /** Предметные данные itemFeedback с подготовленными вложенными карточками. */
38856
+ itemFeedback?: ItemFeedbackRead;
38857
+ };
38858
+ /** Именованная read-модель GroupStatus; wire DTO и входы записи сохраняют исходный контракт. */
38859
+ type GroupStatusRead = Omit<NormalizedPublicity<OpenApiSchemas["GroupStatus"]>, "group"> & {
38860
+ /** Предметные данные group с подготовленными вложенными карточками. */
38861
+ group?: TorrowItem;
38862
+ };
38863
+ /** Именованная read-модель OrderResp; wire DTO и входы записи сохраняют исходный контракт. */
38864
+ type OrderRespRead = Omit<NormalizedPublicity<OpenApiSchemas["OrderResp"]>, "tags" | "order" | "personalInfo"> & {
38865
+ /** Теги; серверный null означает отсутствие ключа. */
38866
+ tags?: string[];
38867
+ /** Предметные данные order с подготовленными вложенными карточками. */
38868
+ order?: CaseItem;
38869
+ /** Предметные данные personalInfo с подготовленными вложенными карточками. */
38870
+ personalInfo?: CasePersonalInfoRead;
38871
+ };
38872
+ /** Именованная read-модель PickOrderResp; wire DTO и входы записи сохраняют исходный контракт. */
38873
+ type PickOrderRespRead = Omit<NormalizedPublicity<OpenApiSchemas["PickOrderResp"]>, "orderCase"> & {
38874
+ /** Предметные данные orderCase с подготовленными вложенными карточками. */
38875
+ orderCase?: CaseItem;
38876
+ };
38877
+ /** Именованная read-модель ReturnOrderResp; wire DTO и входы записи сохраняют исходный контракт. */
38878
+ type ReturnOrderRespRead = Omit<NormalizedPublicity<OpenApiSchemas["ReturnOrderResp"]>, "orderCase"> & {
38879
+ /** Предметные данные orderCase с подготовленными вложенными карточками. */
38880
+ orderCase?: CaseItem;
38881
+ };
38882
+ /** Именованная read-модель ProfileListResp; wire DTO и входы записи сохраняют исходный контракт. */
38883
+ type ProfileListRespRead = Omit<NormalizedPublicity<OpenApiSchemas["ProfileListResp"]>, "profileList"> & {
38884
+ /** Предметные данные profileList с подготовленными вложенными карточками. */
38885
+ profileList?: ContactItem[] | null;
38886
+ };
38887
+ /** Именованная read-модель RemoveProfileResp; wire DTO и входы записи сохраняют исходный контракт. */
38888
+ type RemoveProfileRespRead = Omit<NormalizedPublicity<OpenApiSchemas["RemoveProfileResp"]>, "personalContactList"> & {
38889
+ /** Предметные данные personalContactList с подготовленными вложенными карточками. */
38890
+ personalContactList?: ContactItem[] | null;
38891
+ };
38892
+ /** Именованная read-модель AddProfileResp; wire DTO и входы записи сохраняют исходный контракт. */
38893
+ type AddProfileRespRead = Omit<NormalizedPublicity<OpenApiSchemas["AddProfileResp"]>, "profile" | "personalContactList"> & {
38894
+ /** Предметные данные profile с подготовленными вложенными карточками. */
38895
+ profile?: ContactItem;
38896
+ /** Предметные данные personalContactList с подготовленными вложенными карточками. */
38897
+ personalContactList?: ContactItem[] | null;
38898
+ };
38899
+ /** Именованная read-модель ExportGraph; wire DTO и входы записи сохраняют исходный контракт. */
38900
+ type ExportGraphRead = Omit<NormalizedPublicity<OpenApiSchemas["ExportGraph"]>, "items" | "views" | "timetableCases"> & {
38901
+ /** Предметные данные items с подготовленными вложенными карточками. */
38902
+ items?: TorrowItem[] | null;
38903
+ /** Предметные данные views с подготовленными вложенными карточками. */
38904
+ views?: ItemViewRead[] | null;
38905
+ /** Предметные данные timetableCases с подготовленными вложенными карточками. */
38906
+ timetableCases?: TimetableCaseRead[] | null;
38907
+ };
38908
+ /** Именованная read-модель SearchServiceResourcesResp; wire DTO и входы записи сохраняют исходный контракт. */
38909
+ type SearchServiceResourcesRespRead = Omit<NormalizedPublicity<OpenApiSchemas["SearchServiceResourcesResp"]>, "serviceResources"> & {
38910
+ /** Предметные данные serviceResources с подготовленными вложенными карточками. */
38911
+ serviceResources?: ResourceViewRead[] | null;
38912
+ };
38913
+ /** Именованная read-модель WorkloadInfo; wire DTO и входы записи сохраняют исходный контракт. */
38914
+ type WorkloadInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["WorkloadInfo"]>, "item" | "timetable"> & {
38915
+ /** Предметные данные item с подготовленными вложенными карточками. */
38916
+ item?: TorrowItem;
38917
+ /** Предметные данные timetable с подготовленными вложенными карточками. */
38918
+ timetable?: TimetableCaseRead[] | null;
38919
+ };
38920
+ /** Именованная read-модель GetServiceWorkloadInfoResp; wire DTO и входы записи сохраняют исходный контракт. */
38921
+ type GetServiceWorkloadInfoRespRead = Omit<NormalizedPublicity<OpenApiSchemas["GetServiceWorkloadInfoResp"]>, "workloadInfoList"> & {
38922
+ /** Предметные данные workloadInfoList с подготовленными вложенными карточками. */
38923
+ workloadInfoList?: WorkloadInfoRead[] | null;
38924
+ };
38925
+ /** Именованная read-модель TransactionInfo; wire DTO и входы записи сохраняют исходный контракт. */
38926
+ type TransactionInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["TransactionInfo"]>, "basisItem"> & {
38927
+ /** Предметные данные basisItem с подготовленными вложенными карточками. */
38928
+ basisItem?: TorrowItem;
38929
+ };
38930
+ /** Именованная read-модель AccountingTransaction; wire DTO и входы записи сохраняют исходный контракт. */
38931
+ type AccountingTransactionRead = Omit<NormalizedPublicity<OpenApiSchemas["AccountingTransaction"]>, "transactionInfo"> & {
38932
+ /** Предметные данные transactionInfo с подготовленными вложенными карточками. */
38933
+ transactionInfo?: TransactionInfoRead;
38934
+ };
38935
+ /** Именованная read-модель AnnouncementInfo; wire DTO и входы записи сохраняют исходный контракт. */
38936
+ type AnnouncementInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["AnnouncementInfo"]>, "itemNoteView" | "itemContactView" | "itemContextView" | "itemCalendarView" | "itemCaseView" | "itemLoyaltyCardView" | "itemLoyaltySystemView" | "itemServiceView" | "itemResourceView" | "senderProfileView" | "recipientProfileView"> & {
38937
+ /** Предметные данные itemNoteView с подготовленными вложенными карточками. */
38938
+ itemNoteView?: NoteViewRead;
38939
+ /** Предметные данные itemContactView с подготовленными вложенными карточками. */
38940
+ itemContactView?: ContactViewRead;
38941
+ /** Предметные данные itemContextView с подготовленными вложенными карточками. */
38942
+ itemContextView?: ContextViewRead;
38943
+ /** Предметные данные itemCalendarView с подготовленными вложенными карточками. */
38944
+ itemCalendarView?: CalendarViewRead;
38945
+ /** Предметные данные itemCaseView с подготовленными вложенными карточками. */
38946
+ itemCaseView?: CaseViewRead;
38947
+ /** Предметные данные itemLoyaltyCardView с подготовленными вложенными карточками. */
38948
+ itemLoyaltyCardView?: LoyaltyCardViewRead;
38949
+ /** Предметные данные itemLoyaltySystemView с подготовленными вложенными карточками. */
38950
+ itemLoyaltySystemView?: LoyaltySystemViewRead;
38951
+ /** Предметные данные itemServiceView с подготовленными вложенными карточками. */
38952
+ itemServiceView?: ServiceViewRead;
38953
+ /** Предметные данные itemResourceView с подготовленными вложенными карточками. */
38954
+ itemResourceView?: ResourceViewRead;
38955
+ /** Предметные данные senderProfileView с подготовленными вложенными карточками. */
38956
+ senderProfileView?: ContactViewRead;
38957
+ /** Предметные данные recipientProfileView с подготовленными вложенными карточками. */
38958
+ recipientProfileView?: ContactViewRead;
38959
+ };
38960
+ /** Именованная read-модель ActionHistoryInfo; wire DTO и входы записи сохраняют исходный контракт. */
38961
+ type ActionHistoryInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["ActionHistoryInfo"]>, "itemNoteView" | "itemContactView" | "itemContextView" | "itemCalendarView" | "itemCaseView" | "itemLoyaltyCardView" | "itemLoyaltySystemView" | "itemServiceView" | "itemResourceView" | "userProfileView" | "correspondentProfileViewList"> & {
38962
+ /** Предметные данные itemNoteView с подготовленными вложенными карточками. */
38963
+ itemNoteView?: NoteViewRead;
38964
+ /** Предметные данные itemContactView с подготовленными вложенными карточками. */
38965
+ itemContactView?: ContactViewRead;
38966
+ /** Предметные данные itemContextView с подготовленными вложенными карточками. */
38967
+ itemContextView?: ContextViewRead;
38968
+ /** Предметные данные itemCalendarView с подготовленными вложенными карточками. */
38969
+ itemCalendarView?: CalendarViewRead;
38970
+ /** Предметные данные itemCaseView с подготовленными вложенными карточками. */
38971
+ itemCaseView?: CaseViewRead;
38972
+ /** Предметные данные itemLoyaltyCardView с подготовленными вложенными карточками. */
38973
+ itemLoyaltyCardView?: LoyaltyCardViewRead;
38974
+ /** Предметные данные itemLoyaltySystemView с подготовленными вложенными карточками. */
38975
+ itemLoyaltySystemView?: LoyaltySystemViewRead;
38976
+ /** Предметные данные itemServiceView с подготовленными вложенными карточками. */
38977
+ itemServiceView?: ServiceViewRead;
38978
+ /** Предметные данные itemResourceView с подготовленными вложенными карточками. */
38979
+ itemResourceView?: ResourceViewRead;
38980
+ /** Предметные данные userProfileView с подготовленными вложенными карточками. */
38981
+ userProfileView?: ContactViewRead;
38982
+ /** Предметные данные correspondentProfileViewList с подготовленными вложенными карточками. */
38983
+ correspondentProfileViewList?: ContactViewRead[] | null;
38984
+ };
38985
+
38986
+ /**
38987
+ * Корень иерархии объектов Torrow: схема OpenAPI `TorrowObject`.
38988
+ * `format: date-time` → `Date` в **`generated.ts`** (см. **`scripts/openapi-codegen.mjs`**).
38989
+ */
38990
+ type TorrowObject = TorrowObjectDto;
38991
+ /**
38992
+ * Общие поля item: схема `TorrowItem` + явное пересечение с `TorrowObject`, чтобы тип оставался подтипом `TorrowObject`.
38993
+ */
38994
+ type TorrowItem = Omit<NormalizedPublicity<TorrowItemDto>, "tags" | "integrationIds" | "personalInfo"> & {
38995
+ /** Теги карточки; серверный null означает отсутствие поля. */
38996
+ tags?: string[];
38997
+ /** Интеграции; серверный null означает отсутствие ключа. */
38998
+ integrationIds?: string[];
38999
+ /** Персональные сведения с array-only контейнерами напоминаний и уведомлений. */
39000
+ personalInfo?: PersonalInfoRead;
39001
+ } & TorrowObject;
39002
+ /** Сохраняет подтип персональных сведений и его модификаторы, сужая только два setter-списка. */
39003
+ type ItemPersonalInfoRead<T> = T extends object ? {
39004
+ [K in keyof T]: K extends "personalReminders" | "notificationWayList" ? Exclude<T[K], null> : T[K];
39005
+ } : T;
39006
+ /**
39007
+ * Публичный item-тип из доменного OpenAPI-DTO: пересечение с **`TorrowItem`**, чтобы в типах явно
39008
+ * участвовали общие поля item и связь с **`TorrowObject`** (после codegen даты уже **`Date`** в DTO).
39009
+ */
39010
+ type TorrowItemFromDto<D extends object> = NormalizedPublicity<{
39011
+ [K in keyof D]: K extends "tags" | "integrationIds" ? Exclude<D[K], null> : K extends "personalInfo" ? ItemPersonalInfoRead<D[K]> : D[K];
39012
+ }> & TorrowItem;
39013
+ /**
39014
+ * Ключи, которые не должны попадать в тело create/update: профиль и дискриминатор,
39015
+ * поля социального слоя с отдельными эндпоинтами (`TorrowItemCoreFacade` / `TorrowItemFacade`),
39016
+ * служебный `meta`, серверные агрегаты, `contactProperties` контактов
39017
+ * (`id` и `image` в теле допустимы — в т.ч. клиентский `id` и `FileInfo` после presigned upload).
39018
+ * (`ContactsFacade.updateContactProperties`), **`searchMode`** и **`anyoneAccess`**
39019
+ * (read-only для всех item: вычисляются на сервере от **`publicityType`**), а также **`activityStatus`** и **`registerInfo`**
39020
+ * (read-only на `ContactItem` в продукте / OpenAPI; у прочих item-типов ключей нет — `Omit` без эффекта),
39021
+ * а также **`profileType`**, **`profileProperties`**, **`hasTimetable`** контакта
39022
+ * (сценарий Профиля — `POST /api/v1/user/profiles`, тип **`UserProfileItemForAdd`**).
39023
+ */
39024
+ type TorrowItemKeysExcludedFromItemWriteBody = "personalInfo" | "discriminator" | "publicityType" | "masterInfo" | "integrationIds" | "tags" | "groupInfo" | "solutionData" | "childItemStats" | "feedbackOptions" | "uniqueName" | "blockInfo" | "meta" | "contactProperties" | "activityStatus" | "registerInfo" | "searchMode" | "anyoneAccess" | "profileType" | "profileProperties" | "hasTimetable";
39025
+ /** Поля item в телах create/update: без ключей, исключённых в `TorrowItemKeysExcludedFromItemWriteBody`. */
39026
+ type TorrowItemForCreateOrUpdate<T extends TorrowItem> = Omit<T, TorrowItemKeysExcludedFromItemWriteBody>;
39027
+
39028
+ type NoteItem = Omit<TorrowItemFromDto<NoteItemDto>, "files"> & {
39029
+ /** Прочитанные вложения; серверный null удаляет optional-поле, явно полученный [] сохраняется. */
39030
+ files?: NonNullable<NoteItemDto["files"]>;
39031
+ };
37868
39032
  /** Три формата публичного SDK; остальные серверные строки при чтении становятся Text. */
37869
39033
  type NoteType = NoteTypeDto;
37870
39034
  type ImagePreviewSize = NonNullable<NoteItem["imagePreviewSize"]>;
@@ -37888,7 +39052,10 @@ declare const ImagePreviewSizeValues: {
37888
39052
  readonly LargeSlider: "LargeSlider";
37889
39053
  };
37890
39054
  /** Публичность create/update: Personal, PublicWithRequest, PublicAvailable или Link; без значения при create — Personal. Поле meta.version сохраняет optimistic concurrency при update. Серверные Private/Undefined читаются как Personal. */
37891
- type NoteItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<NoteItem> & Pick<NoteItem, "publicityType" | "meta">;
39055
+ type NoteItemForCreateOrUpdate = Omit<TorrowItemForCreateOrUpdate<NoteItem>, "files"> & Pick<NoteItem, "publicityType" | "meta"> & {
39056
+ /** Полная запись сохраняет wire-контракт вложений: null допустим наряду с массивом. */
39057
+ files?: NoteItemDto["files"];
39058
+ };
37892
39059
  /** Частичное изменение заметки; общие name/image описаны в TorrowItemPatchFields. */
37893
39060
  interface NoteItemPatch extends TorrowItemPatchFields {
37894
39061
  /** Новый формат Html, Markdown или Text; другие значения отклоняются до первого GET. */
@@ -37960,232 +39127,6 @@ type ItemTagsListQuery = {
37960
39127
  sort?: OpenApiSchemas["ItemViewSortCondition"] | null;
37961
39128
  };
37962
39129
 
37963
- type ContactItem = TorrowItemFromDto<ContactItemDto>;
37964
- /** Канал связи для частичной записи: пользовательские поля {@link Communication}, без серверных checkDate/valueForSearch; rid сохраняет идентичность, checkState по умолчанию Unchecked. */
37965
- type ContactCommunicationPatch = Omit<Communication, "checkDate" | "valueForSearch">;
37966
- /** Частичное изменение обычного или профильного Contact. Общие name/image наследуют {@link TorrowItemPatchFields}; пропуск сохраняет поле, вложенное значение заменяется целиком. */
37967
- interface ContactItemPatch extends TorrowItemPatchFields {
37968
- /** Полная замена адресов; []/null удаляют адреса, отсутствующий rid создаётся SDK. */
37969
- addresses?: Address[] | null;
37970
- /** Дата рождения; null удаляет дату. */
37971
- birthday?: Date | null;
37972
- /** Полная замена каналов; []/null очищают, серверные сведения проверки не принимаются на вход. */
37973
- communications?: ContactCommunicationPatch[] | null;
37974
- /** Памятные даты целиком; []/null очищают, отсутствующий rid создаётся SDK. */
37975
- dates?: MemorableDate[] | null;
37976
- /** Имя человека; null/пустая строка очищают текст без нормализации. */
37977
- firstName?: string | null;
37978
- /** Фамилия; null/пустая строка очищают текст. */
37979
- lastName?: string | null;
37980
- /** Отчество; null/пустая строка очищают текст. */
37981
- middleName?: string | null;
37982
- /** Название компании; null/пустая строка очищают текст. */
37983
- company?: string | null;
37984
- /** Должность; null/пустая строка очищают текст. */
37985
- position?: string | null;
37986
- /** Описание контакта; null/пустая строка очищают текст. */
37987
- description?: string | null;
37988
- /** Пол по OpenAPI; UnknownGender означает неизвестное значение, null не принимается. */
37989
- gender?: Gender;
37990
- /** Полная замена ссылок на фотографии; []/null очищают, URL и metadata файла не записываются. */
37991
- photos?: TorrowItemPatchImage[] | null;
37992
- /** Визитка целиком с нормализацией трёх слотов; null запрещён, для очистки передать три явно пустых значения. */
37993
- visitCard?: ContactVisitCard;
37994
- }
37995
- /** Элемент `ContactItem.addresses` (ответ GET). */
37996
- type Address = NonNullable<ContactItem["addresses"]>[number];
37997
- /** Элемент `ContactItem.communications` (ответ GET, полная модель). */
37998
- type Communication = NonNullable<ContactItem["communications"]>[number];
37999
- /** `communications[]` в теле `POST`/`PUT` контакта: без read-only `checkDate`; `checkState` опционален (SDK подставляет `Unchecked`). */
38000
- type CommunicationForCreateOrUpdate = Omit<Communication, "checkDate">;
38001
- /** Элемент `ContactItem.dates`. */
38002
- type MemorableDate = NonNullable<ContactItem["dates"]>[number];
38003
- /** `ContactItem.rating`. */
38004
- type Rating = NonNullable<ContactItem["rating"]>;
38005
- /** `ContactItem.visitCard` (3 слота отображения). */
38006
- type ContactVisitCard = NonNullable<ContactItem["visitCard"]>;
38007
- /** Элемент `ContactVisitCard.fields`. */
38008
- type ContactVisitCardField = NonNullable<NonNullable<ContactVisitCard["fields"]>[number]>;
38009
- /** `ContactItem.personalInfo`. */
38010
- type ContactPersonalInfo = NonNullable<ContactItem["personalInfo"]>;
38011
- /** `ContactItem.profileType`. */
38012
- type ProfileType = NonNullable<ContactItem["profileType"]>;
38013
- /** `ContactItem.registerInfo`. */
38014
- type RegisterInfo = NonNullable<ContactItem["registerInfo"]>;
38015
- type Gender = NonNullable<ContactItem["gender"]>;
38016
- type CommunicationType = NonNullable<Communication["type"]>;
38017
- declare const GenderValues: {
38018
- readonly Unknown: "UnknownGender";
38019
- readonly Male: "Male";
38020
- readonly Female: "Female";
38021
- readonly Other: "OtherGender";
38022
- };
38023
- declare const CommunicationTypeValues: {
38024
- readonly Unknown: "UnknownCommunicationType";
38025
- readonly Phone: "Phone";
38026
- readonly Sms: "Sms";
38027
- readonly Email: "Email";
38028
- readonly WebSite: "WebSite";
38029
- readonly Telegram: "Telegram";
38030
- readonly WhatsApp: "WhatsApp";
38031
- readonly Viber: "Viber";
38032
- readonly Facebook: "Facebook";
38033
- readonly Instagram: "Instagram";
38034
- readonly Vkontakte: "Vkontakte";
38035
- readonly Odnoklassniki: "Odnoklassniki";
38036
- readonly Skype: "Skype";
38037
- readonly Youtube: "Youtube";
38038
- readonly Twitter: "Twitter";
38039
- readonly LinkedIn: "LinkedIn";
38040
- readonly Max: "Max";
38041
- readonly Other: "Other";
38042
- };
38043
- declare const ProfileTypeValues: {
38044
- readonly Unknown: "UnknownProfile";
38045
- readonly None: "None";
38046
- readonly MyProfile: "MyProfile";
38047
- readonly AnyProfile: "AnyProfile";
38048
- readonly CopyProfile: "CopyProfile";
38049
- };
38050
- type SendCommunicationCodeReq = SendCommunicationCodeReqDto;
38051
- type SendCommunicationCodeResp = SendCommunicationCodeRespDto;
38052
- type VerifyCommunicationCodeReq = VerifyCommunicationCodeReqDto;
38053
- type VerifyCommunicationCodeResp = VerifyCommunicationCodeRespDto;
38054
- type ActivityStatus = ActivityStatusDto;
38055
- type ContactProperties = ContactPropertiesDto;
38056
- type UpdateContactPropertiesResp = UpdateContactPropertiesRespDto;
38057
- type UpdateMasterInfoReq = UpdateMasterInfoReqDto;
38058
- type FeedbackOptions = FeedbackOptionsDto;
38059
- type PersonalReminder = PersonalReminderDto;
38060
-
38061
- type GroupStatus = NormalizedPublicity<GroupStatusDto>;
38062
- type UpdateItemAccountsReq = UpdateItemAccountsReqDto;
38063
- type UpdateItemGroupsReq = UpdateItemGroupsReqDto;
38064
- type UpdatePersonalListOrderReq = UpdatePersonalListOrderReqDto;
38065
- type UpdatePersonalListOrderResp = UpdatePersonalListOrderRespDto;
38066
- /**
38067
- * Тело `POST`/`PUT` **`/api/v1/contacts`** (обычный контакт).
38068
- * `communications` — {@link CommunicationForCreateOrUpdate} (без read-only `checkDate`).
38069
- */
38070
- type ContactItemForCreateOrUpdate = Omit<TorrowItemForCreateOrUpdate<ContactItem>, "communications"> & {
38071
- communications?: CommunicationForCreateOrUpdate[] | null;
38072
- };
38073
-
38074
- /** Общий query участников для loyalty cards / loyalty systems (дубли не тащить в два `types.ts`). */
38075
- type LoyaltyParticipantsQuery = {
38076
- participantStateList?: ParticipantState[] | null;
38077
- participantTypeList?: ParticipantType[] | null;
38078
- take?: number | null;
38079
- skip?: number | null;
38080
- lmFrom?: Date | null;
38081
- lmTo?: Date | null;
38082
- cdFrom?: Date | null;
38083
- cdTo?: Date | null;
38084
- includeDeleted?: boolean | null;
38085
- sort?: ObjectSortCondition | null;
38086
- };
38087
-
38088
- type LoyaltySystemItem = TorrowItemFromDto<LoyaltySystemItemDto>;
38089
- type CreateLoyaltyCardReq = CreateLoyaltyCardReqDto;
38090
- type SearchLoyaltyCardsReq = SearchLoyaltyCardsReqDto;
38091
- type LoyaltyCardFilterCondition = LoyaltyCardFilterConditionDto;
38092
- type LoyaltyCardSortCondition = LoyaltyCardSortConditionDto;
38093
- type GetLoyaltySystemsStatisticsReq = GetLoyaltySystemsStatisticsReqDto;
38094
- type GetLoyaltySystemsStatisticsResp = GetLoyaltySystemsStatisticsRespDto;
38095
- type LoyaltySystemsStatisticsResp = LoyaltySystemsStatisticsRespDto;
38096
- type OperationType = OperationTypeDto;
38097
- type ItemSortCondition = ItemSortConditionDto;
38098
- type LoyaltySystemItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<LoyaltySystemItem>;
38099
-
38100
- type LoyaltyCardIssueType = NonNullable<LoyaltySystemItem["loyaltyCardIssueType"]>;
38101
- type LoyaltyCardUpdateKeyInformation = NonNullable<LoyaltySystemItem["loyaltyCardUpdateKeyInformation"]>;
38102
- type LoyaltyCardUpdateNonKeyInformation = NonNullable<LoyaltySystemItem["loyaltyCardUpdateNonKeyInformation"]>;
38103
- declare const LoyaltyCardIssueTypeValues: {
38104
- readonly Unknown: "UnknownLoyaltyCardIssueType";
38105
- readonly Manual: "Manual";
38106
- readonly AutoActive: "AutoActive";
38107
- readonly AutoIssued: "AutoIssued";
38108
- };
38109
- declare const LoyaltyCardUpdateKeyInformationValues: {
38110
- readonly Unknown: "UnknownLoyaltyCardUpdateKeyInformation";
38111
- readonly NonKeyDisallowed: "NonKeyDisallowed";
38112
- readonly NonKeyAllowed: "NonKeyAllowed";
38113
- };
38114
- declare const LoyaltyCardUpdateNonKeyInformationValues: {
38115
- readonly Unknown: "UnknownLoyaltyCardUpdateNonKeyInformation";
38116
- readonly KeyDisallowed: "KeyDisallowed";
38117
- readonly KeyAllowed: "KeyAllowed";
38118
- };
38119
- /** OpenAPI `LoyaltyCardSortCondition` — сортировка поиска карт в программе. */
38120
- declare const LoyaltyCardSortConditionValues: {
38121
- readonly SequenceCardNumberAsc: "SequenceCardNumberAsc";
38122
- readonly SequenceCardNumberDesc: "SequenceCardNumberDesc";
38123
- readonly LoyaltyCardStateAsc: "LoyaltyCardStateAsc";
38124
- readonly LoyaltyCardStateDesc: "LoyaltyCardStateDesc";
38125
- readonly SequenceCardNumberAscLoyaltyCardStateAsc: "SequenceCardNumberAscLoyaltyCardStateAsc";
38126
- readonly SequenceCardNumberDescLoyaltyCardStateAsc: "SequenceCardNumberDescLoyaltyCardStateAsc";
38127
- readonly SequenceCardNumberAscLoyaltyCardStateDesc: "SequenceCardNumberAscLoyaltyCardStateDesc";
38128
- readonly SequenceCardNumberDescLoyaltyCardStateDesc: "SequenceCardNumberDescLoyaltyCardStateDesc";
38129
- readonly LoyaltyCardStateAscSequenceCardNumberAsc: "LoyaltyCardStateAscSequenceCardNumberAsc";
38130
- readonly LoyaltyCardStateAscSequenceCardNumberDesc: "LoyaltyCardStateAscSequenceCardNumberDesc";
38131
- readonly LoyaltyCardStateDescSequenceCardNumberAsc: "LoyaltyCardStateDescSequenceCardNumberAsc";
38132
- readonly LoyaltyCardStateDescSequenceCardNumberDesc: "LoyaltyCardStateDescSequenceCardNumberDesc";
38133
- };
38134
- type LoyaltyGroupListQuery = {
38135
- itemType?: TorrowObjectType | null;
38136
- minParticipantType?: ParticipantType | null;
38137
- operationType?: OperationType | null;
38138
- recursionDepth?: number | null;
38139
- take?: number | null;
38140
- skip?: number | null;
38141
- lmfrom?: Date | null;
38142
- lmto?: Date | null;
38143
- includeDeleted?: boolean | null;
38144
- sort?: ItemSortCondition | null;
38145
- };
38146
- /** Частичное изменение настроек программы; общие name/image сохраняют контракт TorrowItemPatchFields. */
38147
- interface LoyaltySystemItemPatch extends TorrowItemPatchFields {
38148
- /** Описание программы; null очищает. */
38149
- description?: string | null;
38150
- /** Ссылка на визитку; null снимает связь. */
38151
- businessCardId?: string | null;
38152
- /** Правило выпуска будущих карт; Unknown не принимается. */
38153
- loyaltyCardIssueType?: Exclude<NonNullable<LoyaltySystemItem["loyaltyCardIssueType"]>, "UnknownLoyaltyCardIssueType">;
38154
- /** Доступ к выпускаемым картам; это не публичность самого item. */
38155
- loyaltyCardAnyoneAccess?: Exclude<NonNullable<LoyaltySystemItem["loyaltyCardAnyoneAccess"]>, "UnknownAnyoneAccess">;
38156
- /** Политика изменения ключевой информации карт. */
38157
- loyaltyCardUpdateKeyInformation?: Exclude<LoyaltyCardUpdateKeyInformation, "UnknownLoyaltyCardUpdateKeyInformation">;
38158
- /** Политика изменения неключевой информации карт. */
38159
- loyaltyCardUpdateNonKeyInformation?: Exclude<LoyaltyCardUpdateNonKeyInformation, "UnknownLoyaltyCardUpdateNonKeyInformation">;
38160
- /** Срок действия будущей карты в днях (int32); 0 — значение, null очищает. */
38161
- loyaltyCardUsagePeriod?: number | null;
38162
- /** Начало программы; null снимает ограничение. */
38163
- startDate?: Date | null;
38164
- /** Окончание программы; null снимает ограничение. */
38165
- expiredDate?: Date | null;
38166
- /** Полная замена требований к контакту при выпуске; null очищает. */
38167
- contactInformationFieldsRequirements?: NonNullable<LoyaltySystemItem["contactInformationFieldsRequirements"]> | null;
38168
- /** Полная замена ссылок на реферальные программы; [] очищает. */
38169
- referralProgramIds?: string[];
38170
- /** Начальные значения будущего выпуска; существующие балансы не меняются, [] очищает. */
38171
- beginTransactionValues?: NonNullable<LoyaltySystemItem["beginTransactionValues"]>;
38172
- /** Полная конфигурация стартового абонемента будущих карт; null очищает. */
38173
- initialSubscription?: LoyaltySystemInitialSubscriptionPatch | null;
38174
- /** Полная замена имён учётных продуктов; [] очищает. */
38175
- accountingProductNames?: NonNullable<LoyaltySystemItem["accountingProductNames"]>;
38176
- }
38177
- /**
38178
- * Конфигурация будущего стартового абонемента: name — название, usagePeriod — срок в днях,
38179
- * transactionValues — начальные значения. Наследует эти атрибуты InitialSubscription;
38180
- * image ограничено ссылкой файла, URL/служебные метаданные не редактируются.
38181
- */
38182
- type LoyaltySystemInitialSubscriptionPatch = Omit<NonNullable<LoyaltySystemItem["initialSubscription"]>, "image"> & {
38183
- /** Загруженный файл стартового абонемента; null снимает изображение. */
38184
- image?: TorrowItemPatchImage | null;
38185
- };
38186
- /** Полное обновление программы: numeratorInfo доступно только при создании и чтении. */
38187
- type LoyaltySystemItemForUpdate = Omit<LoyaltySystemItemForCreateOrUpdate, "numeratorInfo">;
38188
-
38189
39130
  type IncludeToParentReq = IncludeToParentReqDto;
38190
39131
  type IncludeForUserReq = IncludeForUserReqDto;
38191
39132
  type ItemProperties = OpenApiSchemas["ItemProperties"];
@@ -38277,6 +39218,9 @@ declare abstract class TorrowItemCoreFacade<TItem, TParticipantsQuery = ContactC
38277
39218
  /** Читает одну карточку своим доменным getById без связанных данных. */
38278
39219
  protected abstract readFileMetadataItem(id: string, signal?: AbortSignal): Promise<FileMetadataItem>;
38279
39220
  protected constructor(http: HttpClient, basePath: string, socialOpts?: TorrowItemFacadeOptions);
39221
+ /** Предметная выдача по уникальному имени; внутренние patch GET остаются wire. */
39222
+ protected projectReadItem(item: OpenApiSchemas["TorrowItem"]): TItem;
39223
+ protected projectReadItem<T>(item: T): T;
38280
39224
  /**
38281
39225
  * Id вложения (presigned image/file) — тип **File**.
38282
39226
  * `ownerTorrowId`: profileId, userId или id item того же пользователя (shard).
@@ -38466,6 +39410,10 @@ declare abstract class TorrowItemCoreFacade<TItem, TParticipantsQuery = ContactC
38466
39410
  getByUniqueName(uniqueName: string, options?: {
38467
39411
  signal?: AbortSignal;
38468
39412
  }): Promise<TItem>;
39413
+ /** Читает исходную карточку; доменный фасад применяет полную read-проекцию один раз. */
39414
+ protected readByUniqueName(uniqueName: string, options?: {
39415
+ signal?: AbortSignal;
39416
+ }): Promise<OpenApiSchemas["TorrowItem"]>;
38469
39417
  /** Полная карточка без аватара → null (1 GET); иначе FileInfo из image/info (2 GET). Требуется доступ к Full. */
38470
39418
  getImageInfo(torrowId: string, options?: {
38471
39419
  signal?: AbortSignal;
@@ -38612,264 +39560,6 @@ type PersonalListQuery = {
38612
39560
  participantTypeList?: ParticipantTypeDto[] | null;
38613
39561
  };
38614
39562
 
38615
- /** Предметные значения; версия услуги передаётся отдельно. */
38616
- type ServiceImplicitTagParams = {
38617
- /** Пользовательское название заказа для отображения в приложении; не меняет серверное имя создаваемого заказа. */
38618
- orderName?: string;
38619
- /** Часовой пояс отображения услуги, например Europe/Moscow. */
38620
- timeZone?: string;
38621
- /** За сколько минут до начала запрещена отмена участия. */
38622
- disableCancelMyParticipationBeforeMinutes?: number;
38623
- /** За сколько минут до начала запрещён перенос заказа. */
38624
- disableUpdateOrderTimeBeforeMinutes?: number;
38625
- /** Сообщение пользователю при недоступной записи. */
38626
- unavailableBookingMessage?: string;
38627
- /** Название поля со скидкой в процентах. */
38628
- discountPercentageFieldName?: string;
38629
- /** Интервал между событиями в секундах. */
38630
- marginTimeSec?: number;
38631
- /** Задержка автоматического подключения уведомлений в секундах. */
38632
- autoStartNotificationDelaySeconds?: number;
38633
- /**
38634
- * Скрывает UI подключения уведомлений Telegram и Max через точный тег `HideMessengerNotifications`.
38635
- * BehaviorSettings API также читает точный legacy alias; в его состоянии флаг всегда boolean.
38636
- */
38637
- hideMessengerConnectUi?: boolean;
38638
- /** Полный набор соглашений; пустой массив очищает набор. */
38639
- agreementItems?: {
38640
- /** Положительный уникальный номер соглашения. */
38641
- index: number;
38642
- /** Текст соглашения; хотя бы text или link должны быть заданы. */
38643
- text?: string;
38644
- /** Ссылка соглашения; кодирование хранения выполняет SDK. */
38645
- link?: string;
38646
- }[];
38647
- /** Таймаут перехода после оплаты в секундах. */
38648
- paymentRedirectTimeoutSec?: number;
38649
- };
38650
- /** Минимальная структура поведения ресурса (сейчас: только margin between events). */
38651
- type ResourceBehaviorSettings = {
38652
- marginTimeSec?: number;
38653
- /**
38654
- * Идентификатор TTLock-замка в формате тега `<lockNumber>:lockId`.
38655
- */
38656
- lockId?: number;
38657
- };
38658
-
38659
- /** Редактируемые денежные поля общей схемы PriceProperties: priceWithoutDiscount — исходная цена, discount — скидка, salePrice — итоговая, currencyCode — валюта, prepayment — предоплата, expences — расходы, takePrice — выручка, taxRate/taxAmount — налог. Значения наследуются из OpenAPI; SDK ничего не вычисляет. paymentProviderPropertiesList исключён: API игнорирует его в обоих направлениях. */
38660
- type ItemPricePatchProperties = Omit<NonNullable<NonNullable<NonNullable<ServiceItemApiDto["priceInfo"]>["settings"]>[number]["priceProperties"]>, "paymentProviderPropertiesList">;
38661
- /** Одна цена с собственным расписанием; запись заменяется целиком при priceInfo patch. */
38662
- interface ItemPricePatchSetting {
38663
- /** Цена данной записи. Чтобы удалить цену, удалите всю запись из settings. */
38664
- priceProperties: ItemPricePatchProperties;
38665
- /** Расписание действия данной цены; null либо отсутствие означает отсутствие ограничения этой структуры. */
38666
- schedule?: NonNullable<ServiceItemApiDto["schedule"]> | null;
38667
- }
38668
- /** Полное редактируемое представление цен; настройки и их расписания заменяются целиком. */
38669
- interface ItemPricePatchInfo {
38670
- /** Упорядоченные ценовые записи; [] снимает настройки. Каждая запись содержит цену. */
38671
- settings: ItemPricePatchSetting[];
38672
- }
38673
- /** Полная замена ценовой области; отдельные записи меняются передачей нового списка settings. */
38674
- interface ItemPricePatchFields {
38675
- /** Полная замена всех ценовых записей; null очищает всю область. */
38676
- priceInfo?: ItemPricePatchInfo | null;
38677
- }
38678
-
38679
- /** Причина неполного предметного чтения конкретной настройки. */
38680
- declare enum ServiceBehaviorSettingsIssueReason {
38681
- /** Есть некорректное значение; поле исключено из предметного снимка. */
38682
- InvalidValue = "InvalidValue",
38683
- /** Есть противоречивые значения; порядок не определяет результат. */
38684
- AmbiguousValue = "AmbiguousValue"
38685
- }
38686
- /** Диагностика настройки без раскрытия внутреннего представления. */
38687
- interface ServiceBehaviorSettingsIssue {
38688
- /** Поле, значение которого не может быть достоверно прочитано. */
38689
- field: keyof ServiceBehaviorSettings;
38690
- /** Некорректное значение либо несколько противоречивых значений. */
38691
- reason: ServiceBehaviorSettingsIssueReason;
38692
- }
38693
- /** Проверенное предметное состояние услуги. */
38694
- interface ServiceBehaviorSettingsState {
38695
- /** ID услуги, для которой выполнено чтение. */
38696
- serviceId: string;
38697
- /** Положительная int32 meta.version всей услуги, не отдельный счётчик настроек. */
38698
- version: number;
38699
- /** Прочитанные значения; поля с issues не являются полным снимком. */
38700
- settings: ServiceBehaviorSettings;
38701
- /** Проблемы предметного чтения; пустой массив означает полный снимок настроек. */
38702
- issues: ServiceBehaviorSettingsIssue[];
38703
- }
38704
- /** Результат изменения; поля состояния имеют смысл из ServiceBehaviorSettingsState. */
38705
- interface ServiceBehaviorSettingsUpdateResult extends ServiceBehaviorSettingsState {
38706
- /** Был ли PUT; settings описывают ожидаемый результат, без автоматического readback. */
38707
- changed: boolean;
38708
- }
38709
- /** Управление записью BehaviorSettings; проверку версии выбирает потребитель. */
38710
- interface ServiceBehaviorSettingsUpdateOptions {
38711
- /** Ожидаемая meta.version: 1..2147483647. При наличии включает проверку указанной версии. */
38712
- versionToCheck?: number;
38713
- /** true включает CAS по версии внутреннего GET, если versionToCheck не задан. По умолчанию CAS выключен. */
38714
- checkVersion?: true;
38715
- /** true (по умолчанию) сохраняет пропущенные поля; false полностью заменяет настройки. */
38716
- mergeParameters?: boolean;
38717
- /** Выбранный профиль только для внутреннего GET; не предоставляет право записи. */
38718
- profileId?: string | null;
38719
- /** Гостевой контекст только для GET; не Bearer и не право записи. */
38720
- securityToken?: string | null;
38721
- /** Создание объявления при PUT; отсутствие/null означает false. */
38722
- isNeedAnnouncement?: boolean | null;
38723
- /** Отмена чтения и записи; после отмены автоматических запросов нет. */
38724
- signal?: AbortSignal;
38725
- }
38726
-
38727
- type ServiceItemApi = NormalizedPublicity<ServiceItemApiDto>;
38728
- type ResourceGroup = NonNullable<ServiceItemApi["resourceGroupList"]>[number];
38729
- type BookingProperties = NonNullable<ResourceGroup["bookingProperties"]>;
38730
- type CreateOrderReq = CreateOrderReqDto;
38731
- type OrderResp = NormalizedPublicity<OrderRespDto>;
38732
- type SearchServiceResourcesReq = SearchServiceResourcesReqDto;
38733
- type SearchServiceResourcesResp = NormalizedPublicity<SearchServiceResourcesRespDto>;
38734
- type StepDescription = StepDescriptionDto;
38735
- type SessionDurationProperties = SessionDurationPropertiesDto;
38736
- type GetServiceWorkloadInfoRequest = GetServiceWorkloadInfoRequestDto;
38737
- type GetServiceWorkloadInfoResp = NormalizedPublicity<GetServiceWorkloadInfoRespDto>;
38738
- type GetTimetableStatisticsRequest = GetTimetableStatisticsRequestDto;
38739
- type TimetableStatisticsResp = TimetableStatisticsRespDto;
38740
- type GetCheckInScheduleReq = GetCheckInScheduleReqDto;
38741
- type GetCheckInScheduleResp = GetCheckInScheduleRespDto;
38742
- type GetReCheckInScheduleReq = GetReCheckInScheduleReqDto;
38743
- type UpdateOrderReq = UpdateOrderReqDto;
38744
- type UpdateOrderInfoReq = UpdateOrderInfoReqDto;
38745
- type ChangeOrderServiceReq = ChangeOrderServiceReqDto;
38746
- /**
38747
- * Публичная доменная структура для настройки поведения услуги.
38748
- * Внутри SDK маппится в `service.tags`.
38749
- * orderName задаёт название для отображения в приложении, не серверное имя создаваемого заказа.
38750
- */
38751
- type ServiceBehaviorSettings = ServiceImplicitTagParams;
38752
-
38753
- /**
38754
- * SDK-тип услуги: OpenAPI `ServiceItem` + удобный доменный слой.
38755
- * `behaviorSettings` сериализуется/десериализуется через `tags` внутри SDK.
38756
- */
38757
- type ServiceItem = TorrowItemFromDto<ServiceItemApi> & {
38758
- behaviorSettings?: ServiceBehaviorSettings;
38759
- };
38760
- type ServiceItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<ServiceItem>;
38761
- /** Полный update услуги: атрибуты create/update без numeratorInfo; meta сохраняет CAS-версию самого item, не персональной связи. Полный GET-снимок допускается структурно, runtime отбрасывает numeratorInfo. */
38762
- type ServiceItemForUpdate = Omit<ServiceItemForCreateOrUpdate, "numeratorInfo"> & Pick<ServiceItem, "meta">;
38763
- /** Частичное изменение услуги; name/image наследуют назначение {@link TorrowItemPatchFields}; priceInfo заменяет всю ценовую область согласно ItemPricePatchFields. Остальные поля ниже описывают полную замену выбранного значения. */
38764
- type ServiceItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38765
- /** Описание услуги; null/empty очищает, пропуск сохраняет. */
38766
- description?: string | null;
38767
- /** Идентификатор места оказания услуги; null снимает привязку. */
38768
- placeId?: string | null;
38769
- /** Текстовое описание места; null/empty очищает. */
38770
- place?: string | null;
38771
- /** Полное расписание; вложенные диапазоны заменяются целиком, null снимает структуру. */
38772
- schedule?: NonNullable<ServiceItemApi["schedule"]> | null;
38773
- /** Длительность бронирования в секундах; null снимает ограничение. */
38774
- bookingDuration?: number | null;
38775
- /** Числовой вид расписания; null снимает настройку. */
38776
- timetableView?: number | null;
38777
- /** Граница закрытия регистрации по wire-контракту; null снимает. */
38778
- registrationClose?: number | null;
38779
- /** Граница открытия регистрации по wire-контракту; null снимает. */
38780
- registrationOpen?: number | null;
38781
- /** Максимальное число клиентов; null снимает лимит. */
38782
- maxConsumerQuantity?: number | null;
38783
- /** Полная замена списка профилей исполнителей; [] очищает. */
38784
- executorIdList?: NonNullable<ServiceItemApi["executorIdList"]>;
38785
- /** Требование одобрения; false — значение, null снимает настройку. */
38786
- needApproval?: boolean | null;
38787
- /** Шаг сетки времени; null снимает настройку. */
38788
- timeAlignment?: number | null;
38789
- /** Лимит одновременно действующих заказов услуги; null снимает. */
38790
- orderQuote?: number | null;
38791
- /** Пауза между слотами в секундах; null снимает. */
38792
- marginTime?: number | null;
38793
- /** Доля использования исполнителя по wire-контракту; null снимает. */
38794
- executorUsagePercent?: number | null;
38795
- /** Опорная дата первой недели; Date сериализуется штатным SDK, null снимает. */
38796
- firstWeekDate?: Date | null;
38797
- /** Группа допустимых клиентов; null снимает привязку. */
38798
- clientGroupId?: string | null;
38799
- /** Полный список ресурсных групп; [] очищает, группы не сливаются по id. */
38800
- resourceGroupList?: NonNullable<ServiceItemApi["resourceGroupList"]>;
38801
- /** Полная структура запрашиваемых сведений участника; null снимает. */
38802
- participateFieldRequirements?: NonNullable<ServiceItemApi["participateFieldRequirements"]> | null;
38803
- /** Полный список приложений; [] очищает. */
38804
- appendixList?: NonNullable<ServiceItemApi["appendixList"]>;
38805
- /** Полная конфигурация длительности сессии; null снимает. */
38806
- sessionDurationProperties?: NonNullable<ServiceItemApi["sessionDurationProperties"]> | null;
38807
- /** Автоматический check-in всех связанных событий; false выключает, null не принимается. */
38808
- checkInAllCases?: boolean;
38809
- /** Полный список шагов регистрации; [] очищает. */
38810
- stepDescriptionList?: NonNullable<ServiceItemApi["stepDescriptionList"]>;
38811
- /** Подпись основной кнопки; null/empty снимает. */
38812
- buttonName?: string | null;
38813
- /** Полная конфигурация доступа и минимального интервала check-in; null снимает. */
38814
- checkinPermission?: NonNullable<ServiceItemApi["checkinPermission"]> | null;
38815
- /** Полный список автоматических действий события; [] очищает. */
38816
- caseActionList?: NonNullable<ServiceItemApi["caseActionList"]>;
38817
- /** Полный список правил лояльности; [] очищает, транзакции SDK не вычисляет. */
38818
- loyaltyTransactionPropertiesList?: NonNullable<ServiceItemApi["loyaltyTransactionPropertiesList"]>;
38819
- };
38820
- type ServiceResourceStepUsageType = Extract<NonNullable<ResourceGroup["usageType"]>, "Specification" | "Rent" | "Sale">;
38821
- interface AddServiceResourceGroupInput {
38822
- key: string;
38823
- groupId?: string;
38824
- groupName: string;
38825
- minResources?: number | null;
38826
- maxResources?: number | null;
38827
- maxTotalAmount?: number | null;
38828
- quickFilterTags?: string[] | null;
38829
- bookingProperties?: BookingProperties | null;
38830
- }
38831
- interface AddServiceResourceStepInput extends AddServiceResourceGroupInput {
38832
- usageType: ServiceResourceStepUsageType;
38833
- stepOrder?: number;
38834
- description?: string | null;
38835
- autoChoiceResource?: boolean;
38836
- hiddenStep?: boolean;
38837
- hideResourceDetail?: boolean;
38838
- }
38839
- type AddServicePaymentGroupInput = AddServiceResourceGroupInput;
38840
- interface ServiceBuildResult {
38841
- body: ServiceItemForCreateOrUpdate;
38842
- resourceGroupIds: Record<string, string>;
38843
- }
38844
- type SessionDurationType = NonNullable<SessionDurationProperties["sessionDurationType"]>;
38845
- type TimeSelectionType = NonNullable<SessionDurationProperties["timeSelectionType"]>;
38846
- type StateManagementType = NonNullable<SessionDurationProperties["stateManagementType"]>;
38847
- type SessionPrecisionType = NonNullable<SessionDurationProperties["sessionPrecisionType"]>;
38848
- declare const SessionDurationTypeValues: {
38849
- readonly Unknown: "UnknownSessionDurationType";
38850
- readonly None: "SessionDurationNone";
38851
- readonly Custom: "Custom";
38852
- readonly Constant: "Constant";
38853
- readonly Sum: "Sum";
38854
- };
38855
- declare const TimeSelectionTypeValues: {
38856
- readonly Unknown: "UnknownTimeSelectionType";
38857
- readonly None: "TimeSelectionNone";
38858
- readonly Consumer: "Consumer";
38859
- readonly Executor: "Executor";
38860
- };
38861
- declare const StateManagementTypeValues: {
38862
- readonly Unknown: "UnknownStateManagementType";
38863
- readonly Auto: "Auto";
38864
- readonly Manual: "Manual";
38865
- };
38866
- declare const SessionPrecisionTypeValues: {
38867
- readonly Unknown: "UnknownSessionPrecisionType";
38868
- readonly None: "SessionPrecisionNone";
38869
- readonly DateTime: "DateTime";
38870
- readonly Date: "Date";
38871
- };
38872
-
38873
39563
  /**
38874
39564
  * Query-параметры `PUT .../{id}/timetable` (услуга, ресурс, календарь, контакт, карта лояльности).
38875
39565
  * Для **services** (и **loyaltycards** в OpenAPI) дополнительно поддерживаются `createDateFrom` / `createDateTo`.
@@ -38892,36 +39582,6 @@ type TimetableQueryOptions = {
38892
39582
  createDateTo?: Date | null;
38893
39583
  };
38894
39584
 
38895
- type CalendarItem = TorrowItemFromDto<CalendarItemDto>;
38896
- type CalendarItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<CalendarItem>;
38897
- /** Полный интервал исключения календаря; существующие интервалы сохраняют свой rid. */
38898
- interface CalendarItemPatchTimeRange {
38899
- /** Идентификатор вложенного интервала (24 hex); для нового интервала используйте generateRid(). */
38900
- rid: string;
38901
- /** Начало интервала в Date SDK; в запросе сериализуется в ISO UTC. */
38902
- begin: Date;
38903
- /** Конец интервала в Date SDK; предметный порядок границ проверяет сервер. */
38904
- end: Date;
38905
- /** Подпись интервала; null/пропуск не создаёт текстовую подпись. */
38906
- name?: string | null;
38907
- }
38908
- /** Полная замена исключений; пропущенные внутри структуры списки не объединяются со снимком. */
38909
- interface CalendarItemPatchScheduleRangeExceptions {
38910
- /** Список заменённых интервалов; []/null/пропуск очищает этот список внутри новой структуры. */
38911
- replacedTimeRanges?: CalendarItemPatchTimeRange[] | null;
38912
- /** Список исключённых интервалов; []/null/пропуск очищает этот список внутри новой структуры. */
38913
- excludedTimeRanges?: CalendarItemPatchTimeRange[] | null;
38914
- }
38915
- /** Частичное изменение календаря; общие name/image описаны в TorrowItemPatchFields. */
38916
- interface CalendarItemPatch extends TorrowItemPatchFields {
38917
- /** Описание; null или пустая строка очищает содержимое, пропуск сохраняет. */
38918
- description?: string | null;
38919
- /** Индекс вида int32; null очищает, 0 является реальным значением (ACK может нормализовать его в null). */
38920
- calendarViewIndex?: number | null;
38921
- /** Полная замена структуры исключений; null снимает структуру, {} очищает её списки. */
38922
- scheduleRangeExceptions?: CalendarItemPatchScheduleRangeExceptions | null;
38923
- }
38924
-
38925
39585
  /** CRUD + personal list + социальный слой для календарей (`CalendarItem`). `getById` использует `includeChildItems`. */
38926
39586
  declare class CalendarsFacade extends TorrowItemFacade<CalendarItem> {
38927
39587
  protected readonly itemObjectTypeCode: 1010;
@@ -38992,112 +39652,6 @@ declare class CalendarsFacade extends TorrowItemFacade<CalendarItem> {
38992
39652
  }): Promise<string>;
38993
39653
  }
38994
39654
 
38995
- type CaseItem = TorrowItemFromDto<CaseItemDto>;
38996
- /** Частичное изменение конфигурации события. Общие name/image — {@link TorrowItemPatchFields}; полная замена ценовой области — {@link ItemPricePatchFields}. Пропуск сохраняет поле, вложенные значения заменяются целиком. Состояние/участие/бронь изменяются отдельными операциями. */
38997
- type CaseItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38998
- /** Начало события; Date, null снимает дату; календарную допустимость проверяет сервер. */
38999
- beginDate?: Date | null;
39000
- /** Окончание события; Date, null снимает дату. */
39001
- endDate?: Date | null;
39002
- /** Описание без trim; null/пустая строка очищают текст. */
39003
- description?: string | null;
39004
- /** Идентификатор места; непустая строка, null снимает ссылку. */
39005
- placeId?: string | null;
39006
- /** Текст места; null/пустая строка очищают текст. */
39007
- place?: string | null;
39008
- /** Вид планирования, кроме UnknownTimeType; ограничения перехода проверяет сервер. */
39009
- caseType?: Exclude<NonNullable<CaseItem["caseType"]>, "UnknownTimeType">;
39010
- /** Полная замена расписания; null снимает расписание, не пересчитывая повторения в SDK. */
39011
- schedule?: CaseItem["schedule"] | null;
39012
- /** Окно открытия регистрации в секундах; int32/null, null снимает ограничение. */
39013
- registrationOpen?: number | null;
39014
- /** Окно закрытия регистрации в секундах; int32/null, null снимает ограничение. */
39015
- registrationClose?: number | null;
39016
- /** Визитка события целиком; null запрещён, поля не нормализуются как Contact. */
39017
- visitCard?: CaseItem["visitCard"];
39018
- /** Срок удержания брони в секундах; int32/null, null снимает значение. */
39019
- bookingDuration?: number | null;
39020
- /** Максимальная вместимость; int32/null, ноль сохраняется. */
39021
- maxConsumerQuantity?: number | null;
39022
- /** Дополнительно зарезервированные вручную места; int32/null, отдельно от consumersCount. */
39023
- bookingConsumerQuantity?: number | null;
39024
- /** Процент загрузки исполнителя; конечное число/null, предметные лимиты проверяет сервер. */
39025
- executorUsagePercent?: number | null;
39026
- /** Признак доступности ресурсов; Unknown — серверный sentinel отсутствия; null запрещён. */
39027
- availableResources?: CaseItem["availableResources"];
39028
- /** Необходимость одобрения; null снимает настройку, false сохраняется. */
39029
- needApproval?: boolean | null;
39030
- /** Генерация одиночных событий; null снимает настройку без удаления пропущенного расписания. */
39031
- createSingleCases?: boolean | null;
39032
- /** Полная замена правил регистрации; null снимает правила. */
39033
- checkinPermission?: CaseItem["checkinPermission"] | null;
39034
- /** Скрытие события; null снимает настройку, false сохраняется. */
39035
- hidden?: boolean | null;
39036
- /** Приложения целиком; []/null очищают список. */
39037
- appendixList?: CaseItem["appendixList"];
39038
- /** Полная замена требований к участнику; null снимает требования. */
39039
- participateFieldRequirements?: CaseItem["participateFieldRequirements"] | null;
39040
- /** Группы ресурсов целиком; []/null очищают список, бронирование не выполняется SDK. */
39041
- resourceGroupList?: CaseItem["resourceGroupList"];
39042
- /** Приоритет обработки; конечное число/null, null снимает значение. */
39043
- priority?: number | null;
39044
- /** Идентификатор группы клиентов; непустая строка, null снимает ссылку. */
39045
- clientGroupId?: string | null;
39046
- /** Автоматизации целиком; []/null очищают список, исполнение остаётся серверу. */
39047
- caseActionList?: CaseItem["caseActionList"];
39048
- /** Правила начислений лояльности целиком; []/null очищают список. */
39049
- loyaltyTransactionPropertiesList?: CaseItem["loyaltyTransactionPropertiesList"];
39050
- };
39051
- type CreateCaseReq = NormalizedPublicity<CreateCaseReqDto>;
39052
- type AvailabilityTime = AvailabilityTimeDto;
39053
- type CaseParticipantType = CaseParticipantTypeDto;
39054
- /**
39055
- * Участник кейса. В сгенерированных типах только **`loyaltyCardId`**.
39056
- * Legacy `loyalityCardId` остаётся в `docs/torrow-swagger.json` (wire для старых клиентов),
39057
- * но вырезается обёрткой codegen (`scripts/openapi-codegen.mjs` → `stripLegacyWireAliases`).
39058
- * Сервер игнорирует опечатку при записи; в JSON ответов поле ещё может прийти — не использовать.
39059
- * Проверка против живого API — отдельно (integration / ручные тесты).
39060
- */
39061
- type CaseParticipant = CaseParticipantDto;
39062
- type CaseParticipantView = NormalizedPublicity<CaseParticipantViewDto>;
39063
- type CaseParticipantFields = CaseParticipantFieldsDto;
39064
- type GetCaseParticipationCountResp = GetCaseParticipationCountRespDto;
39065
- type CheckInReq = CheckInReqDto;
39066
- type CheckInProps = CheckInPropsDto;
39067
- type BookResourcesForMeReq = BookResourcesForMeReqDto;
39068
- type BookResourcesForOthersReq = BookResourcesForOthersReqDto;
39069
- type ChangeMoneyReceiveReq = ChangeMoneyReceiveReqDto;
39070
- type ApproveCaseParticipationReq = ApproveCaseParticipationReqDto;
39071
- type CancelCaseParticipationReq = CancelCaseParticipationReqDto;
39072
- type PatchCaseReq = PatchCaseReqDto;
39073
- type CaseState = CaseItem["caseState"];
39074
- type CaseType = CaseItem["caseType"];
39075
- declare const CaseStateValues: {
39076
- readonly Unknown: "UnknownCaseState";
39077
- readonly Verifying: "Verifying";
39078
- readonly Waiting: "Waiting";
39079
- readonly Processing: "Processing";
39080
- readonly Preparing: "Preparing";
39081
- readonly Completed: "Completed";
39082
- readonly Closed: "Closed";
39083
- readonly Rejected: "Rejected";
39084
- readonly Canceled: "Canceled";
39085
- readonly TimeControlled: "TimeControlled";
39086
- readonly TaskNotCompleted: "TaskNotCompleted";
39087
- readonly TaskCompleted: "TaskCompleted";
39088
- };
39089
- declare const CaseTypeValues: {
39090
- readonly Unknown: "UnknownTimeType";
39091
- readonly Time: "Time";
39092
- readonly RepeatedTime: "RepeatedTime";
39093
- readonly Today: "Today";
39094
- readonly Week: "Week";
39095
- readonly Later: "Later";
39096
- readonly Date: "Date";
39097
- readonly State: "State";
39098
- };
39099
- type CaseItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<CaseItem>;
39100
-
39101
39655
  /** Опции `GET /api/v1/cases/{torrowId}` — у `getCase` и `CasesFacade.getById`. */
39102
39656
  interface GetCaseOptions {
39103
39657
  profileId?: string | null;
@@ -39397,16 +39951,6 @@ declare class ContactsFacade extends TorrowItemFacade<ContactItem> {
39397
39951
  }): Promise<TorrowObject | undefined>;
39398
39952
  }
39399
39953
 
39400
- type ContextItem = TorrowItemFromDto<ContextItemDto>;
39401
- type ContextItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<ContextItem>;
39402
- /** Частичное изменение: name/image — общие поля; color/description заменяются целиком. Остальные аспекты имеют отдельные методы. */
39403
- type ContextItemPatch = TorrowItemPatchFields & {
39404
- /** Цвет #RRGGBB; пропуск сохраняет текущий; null/empty не поддерживаются сервером. */
39405
- color?: string;
39406
- /** Описание; null либо empty очищает содержимое, пропуск сохраняет. */
39407
- description?: string | null;
39408
- };
39409
-
39410
39954
  /** CRUD + personal list + социальный слой для контекстов (`ContextItem`). `POST` принимает только опциональный `profileId`. */
39411
39955
  declare class ContextsFacade extends TorrowItemFacade<ContextItem> {
39412
39956
  protected readonly itemObjectTypeCode: 1001;
@@ -39568,208 +40112,6 @@ declare class RelationsFacade {
39568
40112
  }): Promise<Participation>;
39569
40113
  }
39570
40114
 
39571
- /** Провайдер оплаты из OpenAPI; строковый ввод и неизвестный серверный sentinel сохраняются. */
39572
- type PaymentProviderType = OpenApiSchemas["PaymentProviderType"];
39573
- /** Именованные значения общего wire-контракта провайдера оплаты. */
39574
- declare enum PaymentProviderTypeValues {
39575
- /** Неизвестный провайдер серверного контракта. */
39576
- Unknown = "UnknownPaymentProviderType",
39577
- /** Наличный расчёт. */
39578
- Cash = "Cash",
39579
- /** Внешняя ссылка оплаты. */
39580
- CustomLink = "CustomLink",
39581
- /** Интеграция YooMoney. */
39582
- YooMoney = "YooMoney",
39583
- /** Интеграция Qiwi P2P. */
39584
- QiwiP2P = "QiwiP2P",
39585
- /** Серверная ветвь Qiwi B2B. */
39586
- QiwiB2B = "QiwiB2B",
39587
- /** Интеграция YooKassa. */
39588
- YooKassa = "YooKassa",
39589
- /** Интеграция Сбербанка. */
39590
- Sberbank = "Sberbank",
39591
- /** Интеграция Уралсиб. */
39592
- Uralsib = "Uralsib",
39593
- /** Интеграция Альфа-Банка. */
39594
- Alfabank = "Alfabank",
39595
- /** Интеграция RoboKassa. */
39596
- RoboKassa = "RoboKassa",
39597
- /** Интеграция PayKeeper. */
39598
- PayKeeper = "PayKeeper",
39599
- /** Серверная ветвь GateLine. */
39600
- GateLine = "GateLine",
39601
- /** Интеграция Tinkoff. */
39602
- Tinkoff = "Tinkoff",
39603
- /** Интеграция Prodamus. */
39604
- Prodamus = "Prodamus",
39605
- /** Тестовый провайдер. */
39606
- Mock = "MockPaymentProvider"
39607
- }
39608
-
39609
- /** Вид условия использования ресурса из OpenAPI, включая неизвестный серверный sentinel. */
39610
- type UsageConditionType = OpenApiSchemas["UsageConditionType"];
39611
- /** Полный wire-набор для валидации patch и справочника; публичное подмножество задано отдельно. */
39612
- declare enum UsageConditionTypeWireValues {
39613
- /** Сервер не определил вид условия. */
39614
- Unknown = "UnknownUsageConditionType",
39615
- /** Условие использования отсутствует. */
39616
- None = "None",
39617
- /** Указанные ресурсы исключают использование текущего. */
39618
- Exclusion = "Exclusion",
39619
- /** Указанные ресурсы используются дополнительно к текущему. */
39620
- Additional = "Additional"
39621
- }
39622
- /** Совместимый публичный набор: три прежних ключа с типами строковых литералов. */
39623
- declare const UsageConditionTypeValues: {
39624
- /** Условие использования отсутствует. */
39625
- readonly None: "None";
39626
- /** Исключающее условие использования. */
39627
- readonly Exclusion: "Exclusion";
39628
- /** Дополнительное условие использования. */
39629
- readonly Additional: "Additional";
39630
- };
39631
-
39632
- /** Общий текст конфигурации оплаты; назначение совпадает с серверным PaymentParameters. */
39633
- interface PaymentPatchText {
39634
- /** Текст оплаты; null/empty снимает текстовую часть. */
39635
- text?: string | null;
39636
- /** Сообщение до оплаты; null/empty снимает его. */
39637
- beforePayMessage?: string | null;
39638
- /** Сообщение после оплаты; null/empty снимает его. */
39639
- afterPayMessage?: string | null;
39640
- }
39641
- /** Предметные параметры выбранного провайдера. */
39642
- type PaymentPatchParameters<TFields extends object = Record<never, never>> = PaymentPatchText & TFields;
39643
- /** Общие атрибуты RBS банков; значения проверяет сервер/провайдер. */
39644
- interface BankPatchFields {
39645
- /** Имя пользователя интеграции банка. */
39646
- username: string;
39647
- /** Пароль интеграции; не выводить в диагностике. */
39648
- password: string;
39649
- /** Использование тестовой среды; false сохраняется без подстановки defaults SDK. */
39650
- isTest?: boolean;
39651
- }
39652
- /** Атрибуты провайдера с URL и парой доступа. */
39653
- interface PaykeeperPatchFields extends BankPatchFields {
39654
- /** URL интеграции провайдера, передаётся без нормализации SDK. */
39655
- url: string;
39656
- }
39657
- /** Настройки оплаты конкретного провайдера; numeratorId/waitForConfirmation наследуют общий wire-смысл. */
39658
- interface PaymentPatchConfigurationBase<TProvider extends PaymentProviderType> {
39659
- /** Серверный провайдер; строковый тип выводится из общего enum, сохраняя ввод литерала и связь с параметрами. */
39660
- paymentProviderType: `${TProvider}`;
39661
- /** Связанный нумератор оплаты; null снимает ссылку. */
39662
- numeratorId?: string | null;
39663
- /** Ожидать подтверждения; false не считается пропуском, null снимает значение. */
39664
- waitForConfirmation?: boolean | null;
39665
- }
39666
- /** Обязательность параметров следует безусловным cast/ForString в серверном mapper. */
39667
- type PaymentPatchConfiguration<TProvider extends PaymentProviderType, TParameters, TRequired extends boolean = false> = PaymentPatchConfigurationBase<TProvider> & (TRequired extends true ? {
39668
- /** Полная структура параметров с технически обязательными строками; их действительность проверяет сервер. */
39669
- parameters: TParameters;
39670
- } : {
39671
- /** Guarded серверная ветвь допускает отсутствие/null; переданный объект имеет собственные обязательные поля. */
39672
- parameters?: TParameters | null;
39673
- });
39674
- /** Полиморфная конфигурация Resource payment patch; SDK не выполняет платежи и не проверяет credentials. */
39675
- type ResourcePaymentPatchProperties = PaymentPatchConfiguration<PaymentProviderTypeValues.Cash, PaymentPatchParameters> | PaymentPatchConfiguration<PaymentProviderTypeValues.CustomLink, PaymentPatchParameters<{
39676
- /** URL внешней формы оплаты. */ url: string;
39677
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.YooMoney, PaymentPatchParameters<{
39678
- /** Идентификатор кошелька. */ accountId: string;
39679
- /** Секрет проверки уведомлений; чувствительное значение. */ notificationSecret: string;
39680
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.QiwiP2P, PaymentPatchParameters<{
39681
- /** Публичный ключ интеграции. */ publicKey: string;
39682
- /** Закрытый ключ интеграции; чувствительное значение. */ privateKey: string;
39683
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.YooKassa, PaymentPatchParameters<{
39684
- /** Идентификатор магазина. */ shopId: string;
39685
- /** Секретный ключ магазина. */ secretKey: string;
39686
- /** Серверное обозначение системы налогообложения. */ taxation: string;
39687
- }>> | PaymentPatchConfiguration<PaymentProviderTypeValues.Sberbank, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Alfabank, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Uralsib, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.RoboKassa, PaymentPatchParameters<{
39688
- /** Имя магазина. */ shopName: string;
39689
- /** Первый пароль интеграции; чувствительное значение. */ password1: string;
39690
- /** Второй пароль интеграции; чувствительное значение. */ password2: string;
39691
- /** Тестовая среда; false передаётся явно. */ isTest?: boolean;
39692
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.PayKeeper, PaymentPatchParameters<PaykeeperPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Prodamus, PaymentPatchParameters<{
39693
- /** Секретный ключ интеграции. */ secretKey: string;
39694
- /** URL формы оплаты. */ url: string;
39695
- /** Тестовая среда; false передаётся явно. */ isTest?: boolean;
39696
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Tinkoff, PaymentPatchParameters<{
39697
- /** Терминал интеграции. */ terminal: string;
39698
- /** Пароль терминала; чувствительное значение. */ password: string;
39699
- /** Серверное обозначение системы налогообложения. */ taxation: string;
39700
- /** Параметр распределения платежа; SDK не интерпретирует строку. */ split?: string;
39701
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Mock, PaymentPatchParameters<{
39702
- /** Базовый URL перенаправления тестового провайдера. */ redirectBaseUrl?: string;
39703
- /** Тестовый код ошибки int32; wire-опечатка Responce сохранена. */ errorResponceCode?: number | null;
39704
- /** Отложенное создание тестового платежа; Date SDK, null снимает дату. */ createAfter?: Date | null;
39705
- }>> | PaymentPatchConfiguration<PaymentProviderTypeValues.Unknown | PaymentProviderTypeValues.QiwiB2B | PaymentProviderTypeValues.GateLine, PaymentPatchText>;
39706
- /** Предметные параметры всех ветвей payment patch; paymentProviderType выбирает класс, text/beforePayMessage/afterPayMessage — общие сообщения, остальные атрибуты относятся к выбранному провайдеру в ResourcePaymentPatchProperties. */
39707
- type ResourcePaymentPatchParameters = NonNullable<ResourcePaymentPatchProperties["parameters"]>;
39708
-
39709
- type ResourceItemApi = NormalizedPublicity<ResourceItemApiDto>;
39710
- type ServiceDescription = NonNullable<ResourceItemApi["serviceDescriptions"]>[number];
39711
- type UsageCondition = NonNullable<ResourceItemApi["usageCondition"]>;
39712
- /** Дополнительные и исключающие условия; отсутствие условия и неизвестный sentinel сюда не входят. */
39713
- type ResourceUsageConditionType = Exclude<UsageConditionType, `${UsageConditionTypeWireValues.Unknown | UsageConditionTypeWireValues.None}`>;
39714
- type WorkloadPeriod = WorkloadPeriodDto;
39715
- type PickOrderReq = PickOrderReqDto;
39716
- type PickOrderResp = NormalizedPublicity<PickOrderRespDto>;
39717
- type ReturnOrderReq = ReturnOrderReqDto;
39718
- type ReturnOrderResp = NormalizedPublicity<ReturnOrderRespDto>;
39719
- type ResourceItem = TorrowItemFromDto<ResourceItemApi> & {
39720
- behaviorSettings?: ResourceBehaviorSettings;
39721
- };
39722
- type UsageType = ResourceItemApi["usageType"];
39723
- declare const UsageTypeValues: {
39724
- readonly Unknown: "UnknownUsageType";
39725
- readonly Specification: "Specification";
39726
- readonly Rent: "Rent";
39727
- readonly Sale: "Sale";
39728
- readonly Payment: "Payment";
39729
- readonly Ticket: "Ticket";
39730
- };
39731
- type ResourceItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<ResourceItem>;
39732
- /** Подтверждённые обычные поля root Resource update; name/image наследуют общий контракт. */
39733
- interface ResourceItemPatchFields extends TorrowItemPatchFields {
39734
- /** Описание ресурса; null/empty очищает содержимое, пропуск сохраняет. */
39735
- description?: string | null;
39736
- /** Идентификатор связанного элемента; null снимает связь. Это не target ID самого patch. */
39737
- itemId?: string | null;
39738
- /** Идентификатор родительского ресурса; null снимает связь. */
39739
- parentResourceId?: string | null;
39740
- /** Идентификатор связанного расписания; null снимает связь. */
39741
- timetableId?: string | null;
39742
- /** Полная замена расписания с Date SDK; null снимает расписание. */
39743
- schedule?: NonNullable<ResourceItemApi["schedule"]> | null;
39744
- /** Серверный способ использования; UnknownUsageType нормализует сервер, create default не применяется. */
39745
- usageType?: NonNullable<ResourceItemApi["usageType"]>;
39746
- /** Полная замена связей с услугами; [] снимает список, предметные ограничения проверяет сервер. */
39747
- serviceDescriptions?: NonNullable<ResourceItemApi["serviceDescriptions"]>;
39748
- /** Пользовательский код; null/empty очищает содержимое. */
39749
- code?: string | null;
39750
- /** Длительность/расчётная единица в секундах (int32); null снимает значение. */
39751
- duration?: number | null;
39752
- /** Полная замена количественных свойств, включая inventoryDate Date; null снимает структуру. */
39753
- amountProperties?: NonNullable<ResourceItemApi["amountProperties"]> | null;
39754
- /** Полная замена условий использования; null снимает структуру. */
39755
- usageCondition?: NonNullable<ResourceItemApi["usageCondition"]> | null;
39756
- /** Полная замена приложений с Date SDK; [] снимает список. */
39757
- appendixList?: NonNullable<ResourceItemApi["appendixList"]>;
39758
- /** Полная замена конфигурации оплаты; null снимает её, платежи не выполняются. */
39759
- paymentProperties?: ResourcePaymentPatchProperties | null;
39760
- /** Полная замена настроек операций лояльности; [] снимает список, баланс не пересчитывается SDK. */
39761
- loyaltyTransactionPropertiesList?: NonNullable<ResourceItemApi["loyaltyTransactionPropertiesList"]>;
39762
- }
39763
- /** Частичное изменение ресурса с одной из взаимоисключающих форм цены ItemPricePatchFields. */
39764
- type ResourceItemPatch = ResourceItemPatchFields & ItemPricePatchFields;
39765
- interface ResourceServiceBindingOptions {
39766
- usageAmount?: number | null;
39767
- sortIndex?: number | null;
39768
- }
39769
- interface ResourceBuildResult {
39770
- body: ResourceItemForCreateOrUpdate;
39771
- }
39772
-
39773
40115
  /**
39774
40116
  * CRUD + personal list + социальный слой для **Resource** (`ResourceItem`, путь `/api/v1/resources`).
39775
40117
  * Свойство фасада — `client.resourceItems`.
@@ -40017,7 +40359,7 @@ declare class ServicesFacade extends TorrowItemFacade<ServiceItem> {
40017
40359
  signal?: AbortSignal;
40018
40360
  }): Promise<ServiceItem[]>;
40019
40361
  /** `POST /api/v1/services/{serviceId}/session` — создать сессию записи (тело `CaseItem`). */
40020
- createSession(serviceId: string, body: CaseItem, options?: {
40362
+ createSession(serviceId: string, body: CaseItemWire, options?: {
40021
40363
  profileId?: string | null;
40022
40364
  signal?: AbortSignal;
40023
40365
  }): Promise<CaseItem>;
@@ -40208,9 +40550,9 @@ declare class AuthFacade {
40208
40550
  }
40209
40551
 
40210
40552
  /** @see components.schemas.ProfileListResp */
40211
- type ProfileListResp = NormalizedPublicity<ProfileListRespDto>;
40553
+ type ProfileListResp = ProfileListRespRead;
40212
40554
  /** @see components.schemas.RemoveProfileResp */
40213
- type RemoveProfileResp = NormalizedPublicity<RemoveProfileRespDto>;
40555
+ type RemoveProfileResp = RemoveProfileRespRead;
40214
40556
  /** @see components.schemas.UpdateProfilePropertiesResp */
40215
40557
  type UpdateProfilePropertiesResp = UpdateProfilePropertiesRespDto;
40216
40558
  /** @see components.schemas.ProfileProperties */
@@ -40325,15 +40667,15 @@ declare function isTorrowItemType(value: string): value is TorrowItemType;
40325
40667
 
40326
40668
  /** Представление узла в mind map / персональном списке под родителем — тип зависит от `TorrowItemType`. */
40327
40669
  type TorrowItemViewByTypeMap = {
40328
- Contact: NormalizedPublicity<OpenApiSchemas["ContactView"]>;
40329
- Note: NormalizedPublicity<OpenApiSchemas["NoteView"]>;
40330
- Context: NormalizedPublicity<OpenApiSchemas["ContextView"]>;
40331
- Resource: NormalizedPublicity<OpenApiSchemas["ResourceView"]>;
40332
- Service: NormalizedPublicity<OpenApiSchemas["ServiceView"]>;
40333
- Case: NormalizedPublicity<OpenApiSchemas["CaseView"]>;
40334
- Calendar: NormalizedPublicity<OpenApiSchemas["CalendarView"]>;
40335
- LoyaltyCard: NormalizedPublicity<OpenApiSchemas["LoyaltyCardView"]>;
40336
- LoyaltySystem: NormalizedPublicity<OpenApiSchemas["LoyaltySystemView"]>;
40670
+ Contact: ContactViewRead;
40671
+ Note: NoteViewRead;
40672
+ Context: ContextViewRead;
40673
+ Resource: ResourceViewRead;
40674
+ Service: ServiceViewRead;
40675
+ Case: CaseViewRead;
40676
+ Calendar: CalendarViewRead;
40677
+ LoyaltyCard: LoyaltyCardViewRead;
40678
+ LoyaltySystem: LoyaltySystemViewRead;
40337
40679
  };
40338
40680
  type TorrowItemView = TorrowItemViewByTypeMap[TorrowItemType];
40339
40681
  type ViewListQuery = {
@@ -40360,16 +40702,16 @@ type ViewOrderInput = {
40360
40702
  order: number;
40361
40703
  };
40362
40704
  type ViewInfo = ViewInfoDto;
40363
- type ContactView = NormalizedPublicity<ContactViewDto>;
40364
- type NoteView = NormalizedPublicity<NoteViewDto>;
40365
- type ContextView = NormalizedPublicity<ContextViewDto>;
40705
+ type ContactView = ContactViewRead;
40706
+ type NoteView = NoteViewRead;
40707
+ type ContextView = ContextViewRead;
40366
40708
  /** Представление ресурса в mind map (та же схема `ResourceView`, что в поиске ресурсов услуги). */
40367
- type ResourceMindMapView = NormalizedPublicity<ResourceMindMapViewDto>;
40368
- type ServiceView = NormalizedPublicity<ServiceViewDto>;
40369
- type CaseView = NormalizedPublicity<CaseViewDto>;
40370
- type CalendarView = NormalizedPublicity<CalendarViewDto>;
40371
- type LoyaltyCardView = NormalizedPublicity<LoyaltyCardViewDto>;
40372
- type LoyaltySystemView = NormalizedPublicity<LoyaltySystemViewDto>;
40709
+ type ResourceMindMapView = ResourceViewRead;
40710
+ type ServiceView = ServiceViewRead;
40711
+ type CaseView = CaseViewRead;
40712
+ type CalendarView = CalendarViewRead;
40713
+ type LoyaltyCardView = LoyaltyCardViewRead;
40714
+ type LoyaltySystemView = LoyaltySystemViewRead;
40373
40715
 
40374
40716
  /** Закреплённые представления (`views/pinned`). */
40375
40717
  declare class PinnedViewsFacade {
@@ -40626,7 +40968,7 @@ declare class SearchFacade {
40626
40968
  }): Promise<ServiceView[]>;
40627
40969
  }
40628
40970
 
40629
- type ActionHistoryInfo = NormalizedPublicity<ActionHistoryInfoDto>;
40971
+ type ActionHistoryInfo = ActionHistoryInfoRead;
40630
40972
  type ActionHistoryType = ActionHistoryTypeDto;
40631
40973
  type ActionHistoryState = ActionHistoryStateDto;
40632
40974
  /**
@@ -40684,12 +41026,12 @@ declare class AccountingTransactionsFacade {
40684
41026
  private readonly http;
40685
41027
  constructor(http: HttpClient);
40686
41028
  /** `POST /api/v1/accountingtransactions` */
40687
- create(transaction: AccountingTransaction, options?: {
41029
+ create(transaction: NormalizedPublicity<AccountingTransactionDto>, options?: {
40688
41030
  securityToken?: string | null;
40689
41031
  signal?: AbortSignal;
40690
41032
  }): Promise<AccountingTransaction>;
40691
41033
  /** `PUT /api/v1/accountingtransactions/{transaction.id}` */
40692
- update(transaction: AccountingTransaction, options?: {
41034
+ update(transaction: NormalizedPublicity<AccountingTransactionDto>, options?: {
40693
41035
  checkVersion?: boolean | null;
40694
41036
  isNeedAnnouncement?: boolean | null;
40695
41037
  securityToken?: string | null;
@@ -40724,7 +41066,7 @@ declare class AccountingTransactionsFacade {
40724
41066
  }): Promise<AccountingTransaction[]>;
40725
41067
  }
40726
41068
 
40727
- type AnnouncementInfo = NormalizedPublicity<AnnouncementInfoDto>;
41069
+ type AnnouncementInfo = AnnouncementInfoRead;
40728
41070
  type AnnouncementState = AnnouncementStateDto;
40729
41071
  type UpdateAnnouncementStateReq = UpdateAnnouncementStateReqDto;
40730
41072
  /**
@@ -40765,7 +41107,7 @@ declare class AnnouncementsFacade {
40765
41107
  }
40766
41108
 
40767
41109
  type ExportRequest = ExportRequestDto;
40768
- type ExportGraph = NormalizedPublicity<ExportGraphDto>;
41110
+ type ExportGraph = ExportGraphRead;
40769
41111
  type ImportByFileRequest = NormalizedPublicity<ImportByFileRequestDto>;
40770
41112
  type ImportByUniqueNameRequest = ImportByUniqueNameRequestDto;
40771
41113
 
@@ -40981,25 +41323,6 @@ type LoyaltyPersonalListQuery = {
40981
41323
  /** Для **`loyaltysystems/personallist`** (без `includeBalance` в OpenAPI). */
40982
41324
  type LoyaltySystemPersonalListQuery = Omit<LoyaltyPersonalListQuery, "includeBalance">;
40983
41325
 
40984
- type LoyaltyCardItem = TorrowItemFromDto<LoyaltyCardItemDto>;
40985
- type CreateLoyaltyCardSubscriptionReq = CreateLoyaltyCardSubscriptionReqDto;
40986
- type LoyaltyCardSubscription = LoyaltyCardSubscriptionDto;
40987
- type LoyaltyCardItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<LoyaltyCardItem>;
40988
-
40989
- type LoyaltyTransactionsQuery = {
40990
- state?: AccountingTransactionState | null;
40991
- transactionDateFrom?: Date | null;
40992
- transactionDateTo?: Date | null;
40993
- take?: number | null;
40994
- skip?: number | null;
40995
- lmFrom?: Date | null;
40996
- lmTo?: Date | null;
40997
- cdFrom?: Date | null;
40998
- cdTo?: Date | null;
40999
- includeDeleted?: boolean | null;
41000
- sort?: ObjectSortCondition | null;
41001
- };
41002
-
41003
41326
  /**
41004
41327
  * Программы лояльности (**OpenAPI** **LoyaltySystem**): CRUD, персональный список, выпуск карты, статистика.
41005
41328
  * Общий item-слой — {@link TorrowItemCoreFacade} (без эндпоинтов, которых нет в Swagger loyaltysystems).
@@ -41537,9 +41860,9 @@ declare class IntegrationsFacade {
41537
41860
  delete(integrationId: string, options?: TorrowOptions): Promise<number>;
41538
41861
  }
41539
41862
 
41540
- type Feedback = NormalizedPublicity<FeedbackDto>;
41541
- type ItemFeedback = NormalizedPublicity<ItemFeedbackDto>;
41542
- type UserFeedback = NormalizedPublicity<UserFeedbackDto>;
41863
+ type Feedback = FeedbackRead;
41864
+ type ItemFeedback = ItemFeedbackRead;
41865
+ type UserFeedback = UserFeedbackRead;
41543
41866
 
41544
41867
  /**
41545
41868
  * Кросс-доменные операции **Item** (отзывы, шаринг-сессия, uniquename).
@@ -41998,7 +42321,8 @@ declare class ServiceBuilder {
41998
42321
  private readonly addedGroups;
41999
42322
  private constructor();
42000
42323
  static create(body: ServiceItemForCreateOrUpdate): ServiceBuilder;
42001
- static from(service: ServiceItem): ServiceBuilder;
42324
+ /** Принимает исходную конфигурацию, сохраняя nullable write-поля независимо от read-проекции. */
42325
+ static from(service: ServiceItemApi & Pick<ServiceItem, "behaviorSettings">): ServiceBuilder;
42002
42326
  withType(type: KnownServiceType, options?: ServiceSessionDurationOptions): this;
42003
42327
  withSessionDurationProperties(properties: SessionDurationProperties): this;
42004
42328
  addResourceStep(input: AddServiceResourceStepInput): this;
@@ -42048,7 +42372,8 @@ declare const TimeStepUiModeValues: {
42048
42372
  readonly SelectTime: "selectTime";
42049
42373
  };
42050
42374
  type TimeStepUiMode = (typeof TimeStepUiModeValues)[keyof typeof TimeStepUiModeValues];
42051
- declare function sortStepDescriptionsByOrder(list: ServiceItem["stepDescriptionList"]): StepDescription[];
42375
+ /** Сортирует переданный список; nullable ввод сохраняется независимо от суженного read-контракта карточки. */
42376
+ declare function sortStepDescriptionsByOrder(list: ServiceItemApi["stepDescriptionList"]): StepDescription[];
42052
42377
  declare function getStepParameter(step: StepDescription, parameterName: string): string | undefined;
42053
42378
  declare function getResourceGroupIdFromStep(step: StepDescription): string | undefined;
42054
42379
  declare function isStepFlag(step: StepDescription, parameterName: string): boolean;
@@ -42092,7 +42417,7 @@ type BookingWizardExpandedStep = {
42092
42417
  * Шаг **Payment** в мобильном FSM обрабатывается отдельно (`choosePaymentMethod`); здесь он отражает
42093
42418
  * порядок в `stepDescriptionList` для headless-сценариев и агентов.
42094
42419
  */
42095
- declare function expandBookingWizardSteps(service: ServiceItem): BookingWizardExpandedStep[];
42420
+ declare function expandBookingWizardSteps(service: ServiceItemApi & Pick<ServiceItem, "behaviorSettings">): BookingWizardExpandedStep[];
42096
42421
 
42097
42422
  type FreeCheckInSlot = WorkloadPeriod & {
42098
42423
  from: Date;
@@ -42124,13 +42449,13 @@ declare function isServiceOrderConflictError(error: unknown): error is TorrowSdk
42124
42449
  */
42125
42450
  declare function normalizePaymentUrl(url: string | null | undefined): string | undefined;
42126
42451
  /** Сырое значение из DTO без нормализации. */
42127
- declare function getTicketPaymentUrlRaw(caseItem: CaseItem | undefined | null): string | undefined;
42452
+ declare function getTicketPaymentUrlRaw(caseItem: CaseItemWire | undefined | null): string | undefined;
42128
42453
  /**
42129
42454
  * URL оплаты из **`CaseItem.personalInfo.ticketResource.ticketProperties.paymentUrl`**
42130
42455
  * (вид владельца/участника после `createOrder` + загрузка кейса).
42131
42456
  * Для гостя с токеном — тот же путь после `GET .../cases/{id}` с `securityToken` / `caseParticipantId`.
42132
42457
  */
42133
- declare function getTicketPaymentUrl(caseItem: CaseItem | undefined | null): string | undefined;
42458
+ declare function getTicketPaymentUrl(caseItem: CaseItemWire | undefined | null): string | undefined;
42134
42459
 
42135
42460
  /**
42136
42461
  * Локально собирает тело ресурса и его связи с услугами.
@@ -42140,8 +42465,9 @@ declare class ResourceBuilder {
42140
42465
  private draft;
42141
42466
  private constructor();
42142
42467
  static create(body: ResourceItemForCreateOrUpdate): ResourceBuilder;
42143
- static from(resource: ResourceItem): ResourceBuilder;
42144
- attachToService(service: ServiceItem, resourceGroupId: string, options?: ResourceServiceBindingOptions): this;
42468
+ /** Исходная конфигурация сохраняет допустимые nullable write-поля независимо от read-проекции. */
42469
+ static from(resource: ResourceItemApi & Pick<ResourceItem, "behaviorSettings">): ResourceBuilder;
42470
+ attachToService(service: ServiceItemApi & Pick<ServiceItem, "behaviorSettings">, resourceGroupId: string, options?: ResourceServiceBindingOptions): this;
42145
42471
  detachFromService(serviceId: string, resourceGroupId: string): this;
42146
42472
  /** Задаёт зависимость или исключение ресурса по id ранее выбранных ресурсов. */
42147
42473
  setUsageCondition(type: ResourceUsageConditionType, conditionIds: readonly string[]): this;