{"openapi":"3.1.0","info":{"title":"Kartoteq API","version":"1.0.0","description":"REST API сервиса заметок Kartoteq. Авторизация — cookie сессии или персональный Bearer-токен. Ошибки — в едином формате `{ error: { code, message, details? } }`."},"servers":[{"url":"/api/v1"}],"tags":[{"name":"system","description":"Состояние сервиса"},{"name":"auth","description":"Регистрация, подтверждение email, сброс пароля"},{"name":"me","description":"Профиль и настройки текущего пользователя"},{"name":"stacks","description":"Стопки блокнотов"},{"name":"notebooks","description":"Блокноты"},{"name":"notes","description":"Заметки"},{"name":"tags","description":"Иерархические теги"},{"name":"search","description":"Поиск и сохранённые поиски"},{"name":"trash","description":"Корзина"},{"name":"files","description":"Файлы и загрузка по частям"},{"name":"sharing","description":"Общий доступ и приглашения"},{"name":"comments","description":"Комментарии к заметкам"},{"name":"notifications","description":"Лента уведомлений"},{"name":"admin","description":"Административная панель (роли admin и superadmin)"}],"components":{"securitySchemes":{"sessionCookie":{"type":"apiKey","in":"cookie","name":"authjs.session-token","description":"Сессия Auth.js (httpOnly cookie) после входа в приложении."},"bearerToken":{"type":"http","scheme":"bearer","description":"Персональный API-токен (F-AUTH-7, этап 1)."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","NOT_FOUND","VALIDATION","QUOTA_EXCEEDED","RATE_LIMITED","CONFLICT","INTERNAL"]},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"]}}},"required":["code","message"]}},"required":["error"]}},"parameters":{}},"paths":{"/health":{"get":{"tags":["system"],"summary":"Состояние сервиса","description":"Доступность MongoDB, поддержка транзакций и число баз пользователей.","responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"db":{"type":"string","enum":["up","down"]},"transactions":{"type":"boolean"},"tenantDbCount":{"type":"integer"}},"required":["ok","db"]}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/access":{"get":{"tags":["admin"],"summary":"Белый список входа","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"entries":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":["string","null"],"format":"date-time"},"revokedSessions":{"type":"integer"}},"required":["enabled","entries","updatedAt"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["admin"],"summary":"Изменить белый список входа","description":"Записи — email или домен (`@corp.ru`). Администраторы входят всегда. При включении сессии пользователей вне списка завершаются.","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"entries":{"type":"array","items":{"type":"string","maxLength":320},"maxItems":2000}},"required":["enabled","entries"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"entries":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":["string","null"],"format":"date-time"},"revokedSessions":{"type":"integer"}},"required":["enabled","entries","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/broadcasts":{"post":{"tags":["admin"],"summary":"Запустить рассылку по сегменту (все или тариф)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"object","properties":{"ru":{"type":"string","minLength":1,"maxLength":200},"en":{"type":"string","minLength":1,"maxLength":200}},"required":["ru","en"]},"body":{"type":"object","properties":{"ru":{"type":"string","minLength":1,"maxLength":20000},"en":{"type":"string","minLength":1,"maxLength":20000}},"required":["ru","en"]},"segment":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["all"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["plan"]},"planCode":{"type":"string","minLength":1,"maxLength":32}},"required":["type","planCode"]}]}},"required":["subject","body","segment"]}}}},"responses":{"202":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"}},"required":["jobId"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/announcements":{"get":{"tags":["admin"],"summary":"Объявления","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"object","properties":{"ru":{"type":"string"},"en":{"type":"string"}},"required":["ru","en"]},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","text","startsAt","endsAt","createdAt"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["admin"],"summary":"Создать объявление","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"object","properties":{"ru":{"type":"string","minLength":1,"maxLength":500},"en":{"type":"string","minLength":1,"maxLength":500}},"required":["ru","en"]},"startsAt":{"type":["string","null"],"format":"date-time"},"endsAt":{"type":["string","null"],"format":"date-time"}},"required":["text","startsAt","endsAt"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"object","properties":{"ru":{"type":"string"},"en":{"type":"string"}},"required":["ru","en"]},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","text","startsAt","endsAt","createdAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/announcements/{id}":{"put":{"tags":["admin"],"summary":"Изменить объявление","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"object","properties":{"ru":{"type":"string","minLength":1,"maxLength":500},"en":{"type":"string","minLength":1,"maxLength":500}},"required":["ru","en"]},"startsAt":{"type":["string","null"],"format":"date-time"},"endsAt":{"type":["string","null"],"format":"date-time"}},"required":["text","startsAt","endsAt"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"object","properties":{"ru":{"type":"string"},"en":{"type":"string"}},"required":["ru","en"]},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","text","startsAt","endsAt","createdAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["admin"],"summary":"Удалить объявление","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/flags/{key}":{"put":{"tags":["admin"],"summary":"Создать или изменить фича-флаг","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{1,63}$"},"required":true,"name":"key","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","maxLength":500,"default":""},"enabled":{"type":"boolean","default":false},"userIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":64},"maxItems":1000,"default":[]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"},"userIds":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":"string","format":"date-time"}},"required":["key","description","enabled","userIds","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["admin"],"summary":"Удалить фича-флаг","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{1,63}$"},"required":true,"name":"key","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/flags":{"get":{"tags":["admin"],"summary":"Фича-флаги","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"},"userIds":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":"string","format":"date-time"}},"required":["key","description","enabled","userIds","updatedAt"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/jobs":{"get":{"tags":["admin"],"summary":"Фоновые задачи с фильтрами","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","maxLength":64},"required":false,"name":"type","in":"query"},{"schema":{"type":"string","maxLength":64},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"attempts":{"type":"integer"},"maxAttempts":{"type":"integer"},"progress":{"type":["object","null"],"properties":{"current":{"type":"number"},"total":{"type":"number"},"message":{"type":"string"}},"required":["current","total"]},"lastError":{"type":["string","null"]},"userId":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":["string","null"],"format":"date-time"},"finishedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","type","status","attempts","maxAttempts","progress","lastError","userId","createdAt","startedAt","finishedAt"]}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/jobs/{id}":{"post":{"tags":["admin"],"summary":"Повторить или отменить задачу","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["retry","cancel"]}},"required":["action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"attempts":{"type":"integer"},"maxAttempts":{"type":"integer"},"progress":{"type":["object","null"],"properties":{"current":{"type":"number"},"total":{"type":"number"},"message":{"type":"string"}},"required":["current","total"]},"lastError":{"type":["string","null"]},"userId":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":["string","null"],"format":"date-time"},"finishedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","type","status","attempts","maxAttempts","progress","lastError","userId","createdAt","startedAt","finishedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/plans":{"get":{"tags":["admin"],"summary":"Тарифы","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"maxFileSizeMB":{"type":"integer"},"storageQuotaMB":{"type":"integer"},"monthlyUploadMB":{"type":"integer"},"versionHistoryDepth":{"type":"integer"},"versionMaxAgeDays":{"type":"integer"},"versionStorageMB":{"type":"integer"},"maxCollaboratorsPerNotebook":{"type":"integer"},"apiRateLimitPerMinute":{"type":"integer"},"isDefault":{"type":"boolean"},"updatedAt":{"type":"string","format":"date-time"}},"required":["code","name","maxFileSizeMB","storageQuotaMB","monthlyUploadMB","versionHistoryDepth","versionMaxAgeDays","versionStorageMB","maxCollaboratorsPerNotebook","apiRateLimitPerMinute","isDefault","updatedAt"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["admin"],"summary":"Создать тариф","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","pattern":"^[a-z0-9_-]{1,32}$"},"name":{"type":"string","minLength":1,"maxLength":80},"maxFileSizeMB":{"type":"integer","exclusiveMinimum":0},"storageQuotaMB":{"type":"integer","exclusiveMinimum":0},"monthlyUploadMB":{"type":"integer","exclusiveMinimum":0},"versionHistoryDepth":{"type":"integer","minimum":0},"versionMaxAgeDays":{"type":"integer","minimum":0},"versionStorageMB":{"type":"integer","minimum":0},"maxCollaboratorsPerNotebook":{"type":"integer","minimum":0},"apiRateLimitPerMinute":{"type":"integer","exclusiveMinimum":0}},"required":["code","name","maxFileSizeMB","storageQuotaMB","monthlyUploadMB","versionHistoryDepth","versionMaxAgeDays","versionStorageMB","maxCollaboratorsPerNotebook","apiRateLimitPerMinute"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"maxFileSizeMB":{"type":"integer"},"storageQuotaMB":{"type":"integer"},"monthlyUploadMB":{"type":"integer"},"versionHistoryDepth":{"type":"integer"},"versionMaxAgeDays":{"type":"integer"},"versionStorageMB":{"type":"integer"},"maxCollaboratorsPerNotebook":{"type":"integer"},"apiRateLimitPerMinute":{"type":"integer"},"isDefault":{"type":"boolean"},"updatedAt":{"type":"string","format":"date-time"}},"required":["code","name","maxFileSizeMB","storageQuotaMB","monthlyUploadMB","versionHistoryDepth","versionMaxAgeDays","versionStorageMB","maxCollaboratorsPerNotebook","apiRateLimitPerMinute","isDefault","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/audit":{"get":{"tags":["admin"],"summary":"Аудит-лог с фильтрами; format=csv — экспорт","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","maxLength":64},"required":false,"name":"actorId","in":"query"},{"schema":{"type":"string","maxLength":64},"required":false,"name":"action","in":"query"},{"schema":{"type":["string","null"],"format":"date-time"},"required":false,"name":"from","in":"query"},{"schema":{"type":["string","null"],"format":"date-time"},"required":false,"name":"to","in":"query"},{"schema":{"type":"string","maxLength":64},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","enum":["json","csv"],"default":"json"},"required":false,"name":"format","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"actorId":{"type":"string"},"actorName":{"type":"string"},"action":{"type":"string"},"targetType":{"type":["string","null"]},"targetId":{"type":["string","null"]},"ip":{"type":"string"},"userAgent":{"type":"string"},"details":{},"createdAt":{"type":"string","format":"date-time"}},"required":["id","actorId","actorName","action","targetType","targetId","ip","userAgent","createdAt"]}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/plans/{code}":{"patch":{"tags":["admin"],"summary":"Изменить тариф","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":32},"required":true,"name":"code","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"maxFileSizeMB":{"type":"integer","exclusiveMinimum":0},"storageQuotaMB":{"type":"integer","exclusiveMinimum":0},"monthlyUploadMB":{"type":"integer","exclusiveMinimum":0},"versionHistoryDepth":{"type":"integer","minimum":0},"versionMaxAgeDays":{"type":"integer","minimum":0},"versionStorageMB":{"type":"integer","minimum":0},"maxCollaboratorsPerNotebook":{"type":"integer","minimum":0},"apiRateLimitPerMinute":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"maxFileSizeMB":{"type":"integer"},"storageQuotaMB":{"type":"integer"},"monthlyUploadMB":{"type":"integer"},"versionHistoryDepth":{"type":"integer"},"versionMaxAgeDays":{"type":"integer"},"versionStorageMB":{"type":"integer"},"maxCollaboratorsPerNotebook":{"type":"integer"},"apiRateLimitPerMinute":{"type":"integer"},"isDefault":{"type":"boolean"},"updatedAt":{"type":"string","format":"date-time"}},"required":["code","name","maxFileSizeMB","storageQuotaMB","monthlyUploadMB","versionHistoryDepth","versionMaxAgeDays","versionStorageMB","maxCollaboratorsPerNotebook","apiRateLimitPerMinute","isDefault","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["admin"],"summary":"Удалить тариф (если на нём нет пользователей)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":32},"required":true,"name":"code","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["admin"],"summary":"Сделать тариф тарифом по умолчанию","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":32},"required":true,"name":"code","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"maxFileSizeMB":{"type":"integer"},"storageQuotaMB":{"type":"integer"},"monthlyUploadMB":{"type":"integer"},"versionHistoryDepth":{"type":"integer"},"versionMaxAgeDays":{"type":"integer"},"versionStorageMB":{"type":"integer"},"maxCollaboratorsPerNotebook":{"type":"integer"},"apiRateLimitPerMinute":{"type":"integer"},"isDefault":{"type":"boolean"},"updatedAt":{"type":"string","format":"date-time"}},"required":["code","name","maxFileSizeMB","storageQuotaMB","monthlyUploadMB","versionHistoryDepth","versionMaxAgeDays","versionStorageMB","maxCollaboratorsPerNotebook","apiRateLimitPerMinute","isDefault","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/reports/{id}":{"post":{"tags":["admin"],"summary":"Обработать жалобу","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["review","revoke"]}},"required":["action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"reason":{"type":"string"},"email":{"type":["string","null"]},"status":{"type":"string","enum":["new","reviewed","actioned"]},"createdAt":{"type":"string","format":"date-time"},"link":{"type":["object","null"],"properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["note","notebook"]},"targetId":{"type":"string"},"title":{"type":["string","null"]},"ownerId":{"type":"string"},"ownerName":{"type":"string"},"url":{"type":"string"},"views":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"},"revokedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","targetType","targetId","title","ownerId","ownerName","url","views","createdAt","expiresAt","revokedAt"]}},"required":["id","reason","email","status","createdAt","link"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/reports":{"get":{"tags":["admin"],"summary":"Жалобы на публичные ссылки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","enum":["new","reviewed","actioned"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","maxLength":64},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"reason":{"type":"string"},"email":{"type":["string","null"]},"status":{"type":"string","enum":["new","reviewed","actioned"]},"createdAt":{"type":"string","format":"date-time"},"link":{"type":["object","null"],"properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["note","notebook"]},"targetId":{"type":"string"},"title":{"type":["string","null"]},"ownerId":{"type":"string"},"ownerName":{"type":"string"},"url":{"type":"string"},"views":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"},"revokedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","targetType","targetId","title","ownerId","ownerName","url","views","createdAt","expiresAt","revokedAt"]}},"required":["id","reason","email","status","createdAt","link"]}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/public-links/{id}":{"delete":{"tags":["admin"],"summary":"Отозвать публичную ссылку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/storage/check":{"post":{"tags":["admin"],"summary":"Проверить связь с хранилищем S3","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"steps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["head","put","rangeGet","delete"]},"ok":{"type":"boolean"},"ms":{"type":"number"},"error":{"type":"string"}},"required":["name","ok","ms"]}}},"required":["ok","steps"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/storage/activate":{"post":{"tags":["admin"],"summary":"Выбрать хранилище для новых файлов","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","enum":["gridfs","s3"]}},"required":["target"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"configured":{"type":"boolean"},"endpointHost":{"type":["string","null"]},"bucket":{"type":["string","null"]},"writeTarget":{"type":"string","enum":["gridfs","s3"]},"migration":{"type":"object","properties":{"direction":{"type":["string","null"],"enum":["toS3","toGridfs",null]},"state":{"type":"string","enum":["idle","running","paused","done","failed"]},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"startedBy":{"type":["string","null"]}},"required":["direction","state","startedAt","finishedAt","startedBy"]},"stats":{"type":["object","null"],"properties":{"gridfs":{"type":"object","properties":{"blobs":{"type":"integer"},"bytes":{"type":"number"}},"required":["blobs","bytes"]},"s3":{"type":"object","properties":{"blobs":{"type":"integer"},"bytes":{"type":"number"}},"required":["blobs","bytes"]},"computedAt":{"type":"string"}},"required":["gridfs","s3","computedAt"]},"lastCheck":{"type":["object","null"],"properties":{"ok":{"type":"boolean"},"at":{"type":"string"}},"required":["ok","at"]}},"required":["configured","endpointHost","bucket","writeTarget","migration","stats","lastCheck"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/public-links":{"get":{"tags":["admin"],"summary":"Публичные ссылки с поиском по владельцу","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","maxLength":200},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["active","revoked"]},"required":false,"name":"state","in":"query"},{"schema":{"type":"string","maxLength":64},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["note","notebook"]},"targetId":{"type":"string"},"title":{"type":["string","null"]},"ownerId":{"type":"string"},"ownerName":{"type":"string"},"url":{"type":"string"},"views":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"},"revokedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","targetType","targetId","title","ownerId","ownerName","url","views","createdAt","expiresAt","revokedAt"]}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/storage":{"get":{"tags":["admin"],"summary":"Состояние хранилища файлов","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"configured":{"type":"boolean"},"endpointHost":{"type":["string","null"]},"bucket":{"type":["string","null"]},"writeTarget":{"type":"string","enum":["gridfs","s3"]},"migration":{"type":"object","properties":{"direction":{"type":["string","null"],"enum":["toS3","toGridfs",null]},"state":{"type":"string","enum":["idle","running","paused","done","failed"]},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"startedBy":{"type":["string","null"]}},"required":["direction","state","startedAt","finishedAt","startedBy"]},"stats":{"type":["object","null"],"properties":{"gridfs":{"type":"object","properties":{"blobs":{"type":"integer"},"bytes":{"type":"number"}},"required":["blobs","bytes"]},"s3":{"type":"object","properties":{"blobs":{"type":"integer"},"bytes":{"type":"number"}},"required":["blobs","bytes"]},"computedAt":{"type":"string"}},"required":["gridfs","s3","computedAt"]},"lastCheck":{"type":["object","null"],"properties":{"ok":{"type":"boolean"},"at":{"type":"string"}},"required":["ok","at"]}},"required":["configured","endpointHost","bucket","writeTarget","migration","stats","lastCheck"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/stats":{"get":{"tags":["admin"],"summary":"Сводка: регистрации, активные, заметки, хранилище, очередь задач","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"object","properties":{"total":{"type":"integer"},"last30d":{"type":"integer"}},"required":["total","last30d"]},"registrations":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string"},"count":{"type":"integer"}},"required":["day","count"]}},"active":{"type":"object","properties":{"dau":{"type":"integer"},"wau":{"type":"integer"},"mau":{"type":"integer"}},"required":["dau","wau","mau"]},"notes":{"type":"integer"},"storageBytes":{"type":"number"},"jobs":{"type":"object","properties":{"queued":{"type":"integer"},"running":{"type":"integer"},"failed":{"type":"integer"}},"required":["queued","running","failed"]}},"required":["users","registrations","active","notes","storageBytes","jobs"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/storage/stats":{"post":{"tags":["admin"],"summary":"Пересчитать сводку хранилища","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"configured":{"type":"boolean"},"endpointHost":{"type":["string","null"]},"bucket":{"type":["string","null"]},"writeTarget":{"type":"string","enum":["gridfs","s3"]},"migration":{"type":"object","properties":{"direction":{"type":["string","null"],"enum":["toS3","toGridfs",null]},"state":{"type":"string","enum":["idle","running","paused","done","failed"]},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"startedBy":{"type":["string","null"]}},"required":["direction","state","startedAt","finishedAt","startedBy"]},"stats":{"type":["object","null"],"properties":{"gridfs":{"type":"object","properties":{"blobs":{"type":"integer"},"bytes":{"type":"number"}},"required":["blobs","bytes"]},"s3":{"type":"object","properties":{"blobs":{"type":"integer"},"bytes":{"type":"number"}},"required":["blobs","bytes"]},"computedAt":{"type":"string"}},"required":["gridfs","s3","computedAt"]},"lastCheck":{"type":["object","null"],"properties":{"ok":{"type":"boolean"},"at":{"type":"string"}},"required":["ok","at"]}},"required":["configured","endpointHost","bucket","writeTarget","migration","stats","lastCheck"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/storage/migration":{"get":{"tags":["admin"],"summary":"Прогресс переноса файлов","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"migration":{"type":"object","properties":{"direction":{"type":["string","null"],"enum":["toS3","toGridfs",null]},"state":{"type":"string","enum":["idle","running","paused","done","failed"]},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"startedBy":{"type":["string","null"]}},"required":["direction","state","startedAt","finishedAt","startedBy"]},"totals":{"type":"object","properties":{"tenants":{"type":"integer"},"pending":{"type":"integer"},"running":{"type":"integer"},"done":{"type":"integer"},"failed":{"type":"integer"},"blobsDone":{"type":"integer"},"bytesDone":{"type":"number"}},"required":["tenants","pending","running","done","failed","blobsDone","bytesDone"]},"tenants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":["string","null"]},"state":{"type":"string","enum":["pending","running","done","failed"]},"blobsTotal":{"type":"integer"},"blobsDone":{"type":"integer"},"bytesDone":{"type":"number"},"lastError":{"type":["object","null"],"properties":{"blobId":{"type":"string"},"code":{"type":"string","enum":["checksum","too_long","io"]},"message":{"type":"string"}},"required":["blobId","code","message"]}},"required":["id","email","state","blobsTotal","blobsDone","bytesDone","lastError"]}}},"required":["migration","totals","tenants"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["admin"],"summary":"Управление переносом файлов","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"action":{"type":"string","enum":["start"]},"direction":{"type":"string","enum":["toS3","toGridfs"]}},"required":["action","direction"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["pause"]}},"required":["action"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["resume"]}},"required":["action"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["retryFailed"]}},"required":["action"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"migration":{"type":"object","properties":{"direction":{"type":["string","null"],"enum":["toS3","toGridfs",null]},"state":{"type":"string","enum":["idle","running","paused","done","failed"]},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"startedBy":{"type":["string","null"]}},"required":["direction","state","startedAt","finishedAt","startedBy"]},"totals":{"type":"object","properties":{"tenants":{"type":"integer"},"pending":{"type":"integer"},"running":{"type":"integer"},"done":{"type":"integer"},"failed":{"type":"integer"},"blobsDone":{"type":"integer"},"bytesDone":{"type":"number"}},"required":["tenants","pending","running","done","failed","blobsDone","bytesDone"]},"tenants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":["string","null"]},"state":{"type":"string","enum":["pending","running","done","failed"]},"blobsTotal":{"type":"integer"},"blobsDone":{"type":"integer"},"bytesDone":{"type":"number"},"lastError":{"type":["object","null"],"properties":{"blobId":{"type":"string"},"code":{"type":"string","enum":["checksum","too_long","io"]},"message":{"type":"string"}},"required":["blobId","code","message"]}},"required":["id","email","state","blobsTotal","blobsDone","bytesDone","lastError"]}}},"required":["migration","totals","tenants"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/attachments/{id}":{"get":{"tags":["files"],"summary":"Вложение с превью и статусом извлечения текста","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"noteId":{"type":"string"},"fileId":{"type":"string"},"name":{"type":"string"},"mime":{"type":"string"},"size":{"type":"integer"},"kind":{"type":"string","enum":["image","audio","pdf","doc","other"]},"thumbFileId":{"type":["string","null"]},"extractStatus":{"type":"string","enum":["pending","done","failed","skipped"]},"rev":{"type":"integer"},"createdAt":{"type":"string"}},"required":["id","noteId","fileId","name","mime","size","kind","thumbFileId","extractStatus","rev","createdAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["files"],"summary":"Удалить вложение","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"noteId":{"type":"string"},"fileId":{"type":"string"},"name":{"type":"string"},"mime":{"type":"string"},"size":{"type":"integer"},"kind":{"type":"string","enum":["image","audio","pdf","doc","other"]},"thumbFileId":{"type":["string","null"]},"extractStatus":{"type":"string","enum":["pending","done","failed","skipped"]},"rev":{"type":"integer"},"createdAt":{"type":"string"}},"required":["id","noteId","fileId","name","mime","size","kind","thumbFileId","extractStatus","rev","createdAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users/{id}/{action}":{"post":{"tags":["admin"],"summary":"Действие над пользователем: plan, block, unblock, sessions, reset-password","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["plan","block","unblock","sessions","reset-password"]},"required":true,"name":"action","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"planCode":{"type":"string","minLength":1,"maxLength":32},"reason":{"type":"string","minLength":1,"maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"role":{"type":"string","enum":["user","admin","superadmin"]},"planCode":{"type":"string"},"status":{"type":"string","enum":["active","blocked","deleted"]},"blockedReason":{"type":["string","null"]},"emailVerified":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"lastLoginAt":{"type":["string","null"],"format":"date-time"},"usage":{"type":"object","properties":{"storageBytes":{"type":"number"},"monthlyUploadBytes":{"type":"number"},"fileCount":{"type":"number"}},"required":["storageBytes","monthlyUploadBytes","fileCount"]},"noteCount":{"type":"integer"},"notebookCount":{"type":"integer"}},"required":["id","email","name","role","planCode","status","blockedReason","emailVerified","createdAt","lastLoginAt","usage","noteCount","notebookCount"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/attachments":{"post":{"tags":["files"],"summary":"Создать вложение заметки из загруженного файла","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"noteId":{"type":"string"},"fileId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["id","noteId","fileId","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"noteId":{"type":"string"},"fileId":{"type":"string"},"name":{"type":"string"},"mime":{"type":"string"},"size":{"type":"integer"},"kind":{"type":"string","enum":["image","audio","pdf","doc","other"]},"thumbFileId":{"type":["string","null"]},"extractStatus":{"type":"string","enum":["pending","done","failed","skipped"]},"rev":{"type":"integer"},"createdAt":{"type":"string"}},"required":["id","noteId","fileId","name","mime","size","kind","thumbFileId","extractStatus","rev","createdAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users/{id}":{"get":{"tags":["admin"],"summary":"Карточка пользователя","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"role":{"type":"string","enum":["user","admin","superadmin"]},"planCode":{"type":"string"},"status":{"type":"string","enum":["active","blocked","deleted"]},"blockedReason":{"type":["string","null"]},"emailVerified":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"lastLoginAt":{"type":["string","null"],"format":"date-time"},"usage":{"type":"object","properties":{"storageBytes":{"type":"number"},"monthlyUploadBytes":{"type":"number"},"fileCount":{"type":"number"}},"required":["storageBytes","monthlyUploadBytes","fileCount"]},"noteCount":{"type":"integer"},"notebookCount":{"type":"integer"}},"required":["id","email","name","role","planCode","status","blockedReason","emailVerified","createdAt","lastLoginAt","usage","noteCount","notebookCount"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["admin"],"summary":"Удалить пользователя","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"role":{"type":"string","enum":["user","admin","superadmin"]},"planCode":{"type":"string"},"status":{"type":"string","enum":["active","blocked","deleted"]},"blockedReason":{"type":["string","null"]},"emailVerified":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"lastLoginAt":{"type":["string","null"],"format":"date-time"},"usage":{"type":"object","properties":{"storageBytes":{"type":"number"},"monthlyUploadBytes":{"type":"number"},"fileCount":{"type":"number"}},"required":["storageBytes","monthlyUploadBytes","fileCount"]},"noteCount":{"type":"integer"},"notebookCount":{"type":"integer"}},"required":["id","email","name","role","planCode","status","blockedReason","emailVerified","createdAt","lastLoginAt","usage","noteCount","notebookCount"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/forgot":{"post":{"tags":["auth"],"summary":"Запрос ссылки для сброса пароля","description":"Всегда отвечает успехом, чтобы не раскрывать существование адреса (F-AUTH-2).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","minLength":3,"maxLength":254,"pattern":"^[^\\s@]+@[^\\s@]+$"}},"required":["email"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/reset":{"post":{"tags":["auth"],"summary":"Установка нового пароля по токену из письма","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[A-Za-z0-9_-]{20,}$"},"password":{"type":"string","minLength":10,"maxLength":200}},"required":["token","password"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/restore":{"post":{"tags":["auth"],"summary":"Восстановить удалённый аккаунт","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","minLength":3,"maxLength":254},"password":{"type":"string","minLength":1,"maxLength":200}},"required":["email","password"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/verify":{"post":{"tags":["auth"],"summary":"Подтверждение email по токену из письма","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[A-Za-z0-9_-]{20,}$"}},"required":["token"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/register":{"post":{"tags":["auth"],"summary":"Регистрация по email и паролю","description":"Создаёт аккаунт и отправляет письмо со ссылкой подтверждения (F-AUTH-1).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","minLength":3,"maxLength":254,"pattern":"^[^\\s@]+@[^\\s@]+$"},"password":{"type":"string","minLength":10,"maxLength":200},"name":{"type":"string","minLength":1,"maxLength":80},"locale":{"type":"string","enum":["ru","en"]}},"required":["email","password"]}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"}},"required":["id","email"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users":{"get":{"tags":["admin"],"summary":"Список пользователей с поиском и курсорной пагинацией","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","maxLength":200},"required":false,"name":"q","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":200},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","maxLength":500},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"role":{"type":"string","enum":["user","admin","superadmin"]},"planCode":{"type":"string"},"status":{"type":"string","enum":["active","blocked","deleted"]},"emailVerified":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"lastLoginAt":{"type":["string","null"],"format":"date-time"}},"required":["id","email","name","role","planCode","status","emailVerified","createdAt","lastLoginAt"]}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Недостаточно прав","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/verify/resend":{"post":{"tags":["auth"],"summary":"Повторно отправить письмо подтверждения email","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/exports":{"get":{"tags":["me"],"summary":"Экспорты и ссылки на скачивание","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["notePdf","account"]},"noteId":{"type":["string","null"]},"status":{"type":"string","enum":["queued","running","done","failed","expired"]},"fileName":{"type":"string"},"size":{"type":"integer"},"progress":{"type":"object","properties":{"current":{"type":"integer"},"total":{"type":"integer"}},"required":["current","total"]},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"downloadUrl":{"type":["string","null"]}},"required":["id","kind","noteId","status","fileName","size","progress","error","createdAt","finishedAt","expiresAt","downloadUrl"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/exports/{id}":{"get":{"tags":["me"],"summary":"Экспорт: статус и ссылка","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["notePdf","account"]},"noteId":{"type":["string","null"]},"status":{"type":"string","enum":["queued","running","done","failed","expired"]},"fileName":{"type":"string"},"size":{"type":"integer"},"progress":{"type":"object","properties":{"current":{"type":"integer"},"total":{"type":"integer"}},"required":["current","total"]},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"downloadUrl":{"type":["string","null"]}},"required":["id","kind","noteId","status","fileName","size","progress","error","createdAt","finishedAt","expiresAt","downloadUrl"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/file-items/{id}/restore":{"post":{"tags":["files"],"summary":"Восстановить файл из корзины","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/exports/{id}/download":{"get":{"tags":["me"],"summary":"Скачать экспорт","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/file-items/{id}/versions/{vid}/restore":{"post":{"tags":["files"],"summary":"Восстановить версию файла","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"vid","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/files/{id}":{"get":{"tags":["files"],"summary":"Скачать файл (поддерживается Range)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","maxLength":64},"required":false,"name":"owner","in":"query"},{"schema":{"type":"string","maxLength":255},"required":false,"name":"name","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/file-items/purge":{"post":{"tags":["trash"],"summary":"Удалить файлы из корзины навсегда","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":500}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"integer"}},"required":["deleted"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/file-items/{id}/versions":{"get":{"tags":["files"],"summary":"Версии файла","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"blobId":{"type":"string"},"size":{"type":"integer"},"mime":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"source":{"type":"string","enum":["upload","edit","restore"]},"current":{"type":"boolean"}},"required":["id","blobId","size","mime","createdAt","createdBy","source","current"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["files"],"summary":"Новая версия файла","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"baseRev":{"type":"integer","minimum":0},"uploadId":{"type":"string"}},"required":["baseRev","uploadId"],"additionalProperties":false},{"type":"object","properties":{"baseRev":{"type":"integer","minimum":0},"text":{"type":"string"}},"required":["baseRev","text"],"additionalProperties":false}]}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"item":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]},"conflict":{"type":"boolean"}},"required":["item","conflict"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/file-items/{id}":{"get":{"tags":["files"],"summary":"Файл блокнота","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["files"],"summary":"Переименовать или перенести файл","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["files"],"summary":"Удалить файл в корзину","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/folders/{id}/restore":{"post":{"tags":["notebooks"],"summary":"Восстановить папку из корзины","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"parentId":{"type":["string","null"]},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","notebookId","parentId","name","order","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/file-items/{id}/poster":{"post":{"tags":["files"],"summary":"Кадр видео для превью","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"blobId","in":"query"}],"requestBody":{"content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/imports/archive":{"post":{"tags":["notes"],"summary":"Импортировать архив Markdown, экспорт Notion или страницы OneNote","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string"},"fileName":{"type":"string","minLength":1,"maxLength":255},"notebookId":{"type":["string","null"]},"format":{"type":"string","enum":["auto","markdown","notion","onenote"]}},"required":["fileId","fileName"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string","enum":["enex","markdown","notion","onenote"]},"fileName":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"notebookId":{"type":["string","null"]},"total":{"type":"integer"},"processed":{"type":"integer"},"imported":{"type":"integer"},"withLosses":{"type":"integer"},"skipped":{"type":"integer"},"losses":{"type":"object","additionalProperties":{"type":"integer"}},"problems":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"losses":{"type":"array","items":{"type":"string","enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid"]}}},"required":["title","losses"]}},"log":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"ok":{"type":"boolean"},"loss":{"type":["string","null"],"enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid",null]},"at":{"type":"string"}},"required":["title","ok","loss","at"]}},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","source","fileName","status","notebookId","total","processed","imported","withLosses","skipped","losses","problems","log","error","createdAt","startedAt","finishedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/file-items":{"get":{"tags":["files"],"summary":"Файлы блокнота или папки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"notebookId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"folderId","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["files"],"summary":"Добавить файл в блокнот или папку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"uploadId":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["id","uploadId","notebookId","folderId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/folders/{id}":{"patch":{"tags":["notebooks"],"summary":"Изменить папку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"parentId":{"type":["string","null"]},"order":{"type":"integer","minimum":0}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"parentId":{"type":["string","null"]},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","notebookId","parentId","name","order","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["notebooks"],"summary":"Удалить папку в корзину","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"parentId":{"type":["string","null"]},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","notebookId","parentId","name","order","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/imports":{"get":{"tags":["notes"],"summary":"Импорты: прогресс и отчёты","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string","enum":["enex","markdown","notion","onenote"]},"fileName":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"notebookId":{"type":["string","null"]},"total":{"type":"integer"},"processed":{"type":"integer"},"imported":{"type":"integer"},"withLosses":{"type":"integer"},"skipped":{"type":"integer"},"losses":{"type":"object","additionalProperties":{"type":"integer"}},"problems":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"losses":{"type":"array","items":{"type":"string","enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid"]}}},"required":["title","losses"]}},"log":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"ok":{"type":"boolean"},"loss":{"type":["string","null"],"enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid",null]},"at":{"type":"string"}},"required":["title","ok","loss","at"]}},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","source","fileName","status","notebookId","total","processed","imported","withLosses","skipped","losses","problems","log","error","createdAt","startedAt","finishedAt"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/imports/enex":{"post":{"tags":["notes"],"summary":"Импортировать файл .enex из Evernote","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string"},"fileName":{"type":"string","minLength":1,"maxLength":255},"notebookId":{"type":["string","null"]}},"required":["fileId","fileName"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string","enum":["enex","markdown","notion","onenote"]},"fileName":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"notebookId":{"type":["string","null"]},"total":{"type":"integer"},"processed":{"type":"integer"},"imported":{"type":"integer"},"withLosses":{"type":"integer"},"skipped":{"type":"integer"},"losses":{"type":"object","additionalProperties":{"type":"integer"}},"problems":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"losses":{"type":"array","items":{"type":"string","enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid"]}}},"required":["title","losses"]}},"log":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"ok":{"type":"boolean"},"loss":{"type":["string","null"],"enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid",null]},"at":{"type":"string"}},"required":["title","ok","loss","at"]}},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","source","fileName","status","notebookId","total","processed","imported","withLosses","skipped","losses","problems","log","error","createdAt","startedAt","finishedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/imports/{id}":{"get":{"tags":["notes"],"summary":"Импорт: прогресс и отчёт","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string","enum":["enex","markdown","notion","onenote"]},"fileName":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"notebookId":{"type":["string","null"]},"total":{"type":"integer"},"processed":{"type":"integer"},"imported":{"type":"integer"},"withLosses":{"type":"integer"},"skipped":{"type":"integer"},"losses":{"type":"object","additionalProperties":{"type":"integer"}},"problems":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"losses":{"type":"array","items":{"type":"string","enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid"]}}},"required":["title","losses"]}},"log":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"ok":{"type":"boolean"},"loss":{"type":["string","null"],"enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid",null]},"at":{"type":"string"}},"required":["title","ok","loss","at"]}},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","source","fileName","status","notebookId","total","processed","imported","withLosses","skipped","losses","problems","log","error","createdAt","startedAt","finishedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["notes"],"summary":"Остановить импорт","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string","enum":["enex","markdown","notion","onenote"]},"fileName":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"notebookId":{"type":["string","null"]},"total":{"type":"integer"},"processed":{"type":"integer"},"imported":{"type":"integer"},"withLosses":{"type":"integer"},"skipped":{"type":"integer"},"losses":{"type":"object","additionalProperties":{"type":"integer"}},"problems":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"losses":{"type":"array","items":{"type":"string","enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid"]}}},"required":["title","losses"]}},"log":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"ok":{"type":"boolean"},"loss":{"type":["string","null"],"enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid",null]},"at":{"type":"string"}},"required":["title","ok","loss","at"]}},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","source","fileName","status","notebookId","total","processed","imported","withLosses","skipped","losses","problems","log","error","createdAt","startedAt","finishedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/folders":{"get":{"tags":["notebooks"],"summary":"Папки блокнота","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"notebookId","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"parentId":{"type":["string","null"]},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","notebookId","parentId","name","order","rev","createdAt","updatedAt"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["notebooks"],"summary":"Создать папку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"parentId":{"type":["string","null"]},"name":{"type":"string","minLength":1,"maxLength":120}},"required":["id","notebookId","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"parentId":{"type":["string","null"]},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","notebookId","parentId","name","order","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/link-previews/{id}":{"get":{"tags":["notes"],"summary":"Состояние превью ссылки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","pattern":"^[0-9a-f]{32}$"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"status":{"type":"string","enum":["pending","ready","failed"]},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"image":{"type":["string","null"]},"siteName":{"type":["string","null"]}},"required":["id","url","status","title","description","image","siteName"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/invites/{id}":{"delete":{"tags":["sharing"],"summary":"Отозвать приглашение","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/link-previews":{"post":{"tags":["notes"],"summary":"Запросить превью ссылки (Open Graph)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2000,"format":"uri"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"status":{"type":"string","enum":["pending","ready","failed"]},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"image":{"type":["string","null"]},"siteName":{"type":["string","null"]}},"required":["id","url","status","title","description","image","siteName"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/invites":{"post":{"tags":["sharing"],"summary":"Создать ссылку-приглашение","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"role":{"type":"string","enum":["viewer","editor","manager"]},"expiresInDays":{"type":"integer","minimum":1,"maximum":365,"default":7},"maxUses":{"type":["integer","null"],"minimum":1,"maximum":10000,"default":null}},"required":["targetType","targetId","role"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"invite":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["email","link"]},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"email":{"type":["string","null"]},"role":{"type":"string","enum":["viewer","editor","manager"]},"expiresAt":{"type":"string"},"maxUses":{"type":["number","null"]},"uses":{"type":"number"},"createdAt":{"type":"string"}},"required":["id","kind","targetType","targetId","email","role","expiresAt","maxUses","uses","createdAt"]},"token":{"type":"string"},"url":{"type":"string"}},"required":["invite","token","url"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/invites/{id}/accept":{"post":{"tags":["sharing"],"summary":"Принять ссылку-приглашение по токену","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"ownerId":{"type":"string"},"role":{"type":"string","enum":["viewer","editor","manager","owner"]}},"required":["targetType","targetId","ownerId","role"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/api-tokens/{id}":{"delete":{"tags":["me"],"summary":"Отозвать API-токен","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/imports/markdown":{"post":{"tags":["notes"],"summary":"Импортировать папку Markdown из zip-архива","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string"},"fileName":{"type":"string","minLength":1,"maxLength":255},"notebookId":{"type":["string","null"]}},"required":["fileId","fileName"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string","enum":["enex","markdown","notion","onenote"]},"fileName":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed","cancelled"]},"notebookId":{"type":["string","null"]},"total":{"type":"integer"},"processed":{"type":"integer"},"imported":{"type":"integer"},"withLosses":{"type":"integer"},"skipped":{"type":"integer"},"losses":{"type":"object","additionalProperties":{"type":"integer"}},"problems":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"losses":{"type":"array","items":{"type":"string","enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid"]}}},"required":["title","losses"]}},"log":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"ok":{"type":"boolean"},"loss":{"type":["string","null"],"enum":["encrypted","tooLarge","quota","missingResource","styles","unsupported","invalid",null]},"at":{"type":"string"}},"required":["title","ok","loss","at"]}},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","source","fileName","status","notebookId","total","processed","imported","withLosses","skipped","losses","problems","log","error","createdAt","startedAt","finishedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/api-tokens":{"get":{"tags":["me"],"summary":"Персональные API-токены","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":["string","null"]},"lastUsedAt":{"type":["string","null"]}},"required":["id","name","prefix","createdAt","expiresAt","lastUsedAt"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["me"],"summary":"Создать API-токен","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"expiresInDays":{"type":["integer","null"],"minimum":1,"maximum":365,"default":90}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"item":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":["string","null"]},"lastUsedAt":{"type":["string","null"]}},"required":["id","name","prefix","createdAt","expiresAt","lastUsedAt"]}},"required":["token","item"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/inbound-email/regenerate":{"post":{"tags":["me"],"summary":"Выпустить новый адрес для писем в Kartoteq","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":["string","null"]},"enabled":{"type":"boolean"},"dailyLimit":{"type":"integer"},"today":{"type":"integer"},"recent":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"from":{"type":"string"},"subject":{"type":"string"},"status":{"type":"string","enum":["processing","done","rejected"]},"reason":{"type":["string","null"],"enum":["disabled","dailyLimit","autoReply","tooLarge","failed",null]},"noteId":{"type":["string","null"]},"receivedAt":{"type":"string"}},"required":["id","from","subject","status","reason","noteId","receivedAt"]}}},"required":["address","enabled","dailyLimit","today","recent"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/locale":{"put":{"tags":["me"],"summary":"Выбрать язык интерфейса","description":"Ставит cookie `kartoteq_locale`; при наличии сессии сохраняет язык в профиле.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"locale":{"type":"string","enum":["ru","en"]}},"required":["locale"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"locale":{"type":"string","enum":["ru","en"]}},"required":["locale"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/export":{"post":{"tags":["me"],"summary":"Запустить полный экспорт аккаунта","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"202":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["notePdf","account"]},"noteId":{"type":["string","null"]},"status":{"type":"string","enum":["queued","running","done","failed","expired"]},"fileName":{"type":"string"},"size":{"type":"integer"},"progress":{"type":"object","properties":{"current":{"type":"integer"},"total":{"type":"integer"}},"required":["current","total"]},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"downloadUrl":{"type":["string","null"]}},"required":["id","kind","noteId","status","fileName","size","progress","error","createdAt","finishedAt","expiresAt","downloadUrl"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/inbound-email":{"get":{"tags":["me"],"summary":"Адрес для писем в Kartoteq и последние письма","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":["string","null"]},"enabled":{"type":"boolean"},"dailyLimit":{"type":"integer"},"today":{"type":"integer"},"recent":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"from":{"type":"string"},"subject":{"type":"string"},"status":{"type":"string","enum":["processing","done","rejected"]},"reason":{"type":["string","null"],"enum":["disabled","dailyLimit","autoReply","tooLarge","failed",null]},"noteId":{"type":["string","null"]},"receivedAt":{"type":"string"}},"required":["id","from","subject","status","reason","noteId","receivedAt"]}}},"required":["address","enabled","dailyLimit","today","recent"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["me"],"summary":"Включить или выключить приём писем","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":["string","null"]},"enabled":{"type":"boolean"},"dailyLimit":{"type":"integer"},"today":{"type":"integer"},"recent":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"from":{"type":"string"},"subject":{"type":"string"},"status":{"type":"string","enum":["processing","done","rejected"]},"reason":{"type":["string","null"],"enum":["disabled","dailyLimit","autoReply","tooLarge","failed",null]},"noteId":{"type":["string","null"]},"receivedAt":{"type":"string"}},"required":["id","from","subject","status","reason","noteId","receivedAt"]}}},"required":["address","enabled","dailyLimit","today","recent"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/file-versions/purge":{"post":{"tags":["files"],"summary":"Удалить старые версии своих файлов","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"integer"}},"required":["deleted"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/avatar":{"get":{"tags":["me"],"summary":"Изображение аватара","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"image/*":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["me"],"summary":"Загрузить аватар (PNG, JPEG, WebP, GIF до 2 МБ)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"emailVerified":{"type":"boolean"},"name":{"type":"string"},"avatarFileId":{"type":["string","null"]},"locale":{"type":"string","enum":["ru","en"]},"timeZone":{"type":"string"},"theme":{"type":"string","enum":["system","light","dark"]},"docSurface":{"type":"string","enum":["light","dark"]},"role":{"type":"string","enum":["user","admin","superadmin"]},"planCode":{"type":"string"}},"required":["id","email","emailVerified","name","avatarFileId","locale","timeZone","theme","docSurface","role","planCode"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["me"],"summary":"Удалить аватар","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"emailVerified":{"type":"boolean"},"name":{"type":"string"},"avatarFileId":{"type":["string","null"]},"locale":{"type":"string","enum":["ru","en"]},"timeZone":{"type":"string"},"theme":{"type":"string","enum":["system","light","dark"]},"docSurface":{"type":"string","enum":["light","dark"]},"role":{"type":"string","enum":["user","admin","superadmin"]},"planCode":{"type":"string"}},"required":["id","email","emailVerified","name","avatarFileId","locale","timeZone","theme","docSurface","role","planCode"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/sessions/{id}":{"delete":{"tags":["me"],"summary":"Завершить сессию","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/sessions":{"get":{"tags":["me"],"summary":"Активные сессии","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"lastSeenAt":{"type":"string"},"ip":{"type":"string"},"userAgent":{"type":"string"},"current":{"type":"boolean"}},"required":["id","createdAt","lastSeenAt","ip","userAgent","current"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["me"],"summary":"Завершить все другие сессии","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"integer"}},"required":["revoked"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/telegram":{"get":{"tags":["me"],"summary":"Привязка Telegram-бота","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"configured":{"type":"boolean"},"botUsername":{"type":["string","null"]},"linked":{"type":["object","null"],"properties":{"username":{"type":["string","null"]},"linkedAt":{"type":"string"}},"required":["username","linkedAt"]},"pending":{"type":["object","null"],"properties":{"code":{"type":"string"},"link":{"type":"string"},"expiresAt":{"type":"string"}},"required":["code","link","expiresAt"]}},"required":["configured","botUsername","linked","pending"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["me"],"summary":"Выпустить код привязки Telegram","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"configured":{"type":"boolean"},"botUsername":{"type":["string","null"]},"linked":{"type":["object","null"],"properties":{"username":{"type":["string","null"]},"linkedAt":{"type":"string"}},"required":["username","linkedAt"]},"pending":{"type":["object","null"],"properties":{"code":{"type":"string"},"link":{"type":"string"},"expiresAt":{"type":"string"}},"required":["code","link","expiresAt"]}},"required":["configured","botUsername","linked","pending"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["me"],"summary":"Отвязать Telegram","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"configured":{"type":"boolean"},"botUsername":{"type":["string","null"]},"linked":{"type":["object","null"],"properties":{"username":{"type":["string","null"]},"linkedAt":{"type":"string"}},"required":["username","linkedAt"]},"pending":{"type":["object","null"],"properties":{"code":{"type":"string"},"link":{"type":"string"},"expiresAt":{"type":"string"}},"required":["code","link","expiresAt"]}},"required":["configured","botUsername","linked","pending"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/usage":{"get":{"tags":["me"],"summary":"Тариф, хранилище, месячный трафик и лимит файла","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["code","name"]},"storage":{"type":"object","properties":{"usedBytes":{"type":"number"},"limitBytes":{"type":"number"},"versionBytes":{"type":"number"}},"required":["usedBytes","limitBytes","versionBytes"]},"monthlyUpload":{"type":"object","properties":{"usedBytes":{"type":"number"},"limitBytes":{"type":"number"},"monthKey":{"type":"string"}},"required":["usedBytes","limitBytes","monthKey"]},"maxFileBytes":{"type":"number"},"fileCount":{"type":"integer"},"noteCount":{"type":"integer"}},"required":["plan","storage","monthlyUpload","maxFileBytes","fileCount","noteCount"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notebooks/{id}/restore":{"post":{"tags":["notebooks"],"summary":"Восстановить блокнот из корзины","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"order":{"type":"integer"},"isDefault":{"type":"boolean"},"shareCount":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","stackId","name","color","icon","order","isDefault","shareCount","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notebooks/{id}/default":{"post":{"tags":["notebooks"],"summary":"Назначить блокнот по умолчанию","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"order":{"type":"integer"},"isDefault":{"type":"boolean"},"shareCount":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","stackId","name","color","icon","order","isDefault","shareCount","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notebooks/order":{"patch":{"tags":["notebooks"],"summary":"Переупорядочить блокноты и распределить по стопкам","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]}},"required":["id","stackId"],"additionalProperties":false},"minItems":1,"maxItems":1000}},"required":["items"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"order":{"type":"integer"},"isDefault":{"type":"boolean"},"shareCount":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","stackId","name","color","icon","order","isDefault","shareCount","rev","createdAt","updatedAt"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me":{"get":{"tags":["me"],"summary":"Профиль текущего пользователя","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"emailVerified":{"type":"boolean"},"name":{"type":"string"},"avatarFileId":{"type":["string","null"]},"locale":{"type":"string","enum":["ru","en"]},"timeZone":{"type":"string"},"theme":{"type":"string","enum":["system","light","dark"]},"docSurface":{"type":"string","enum":["light","dark"]},"role":{"type":"string","enum":["user","admin","superadmin"]},"planCode":{"type":"string"}},"required":["id","email","emailVerified","name","avatarFileId","locale","timeZone","theme","docSurface","role","planCode"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["me"],"summary":"Изменить имя, язык, часовой пояс или тему","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"locale":{"type":"string","enum":["ru","en"]},"timeZone":{"type":"string","minLength":1,"maxLength":64},"theme":{"type":"string","enum":["system","light","dark"]},"docSurface":{"type":"string","enum":["light","dark"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"emailVerified":{"type":"boolean"},"name":{"type":"string"},"avatarFileId":{"type":["string","null"]},"locale":{"type":"string","enum":["ru","en"]},"timeZone":{"type":"string"},"theme":{"type":"string","enum":["system","light","dark"]},"docSurface":{"type":"string","enum":["light","dark"]},"role":{"type":"string","enum":["user","admin","superadmin"]},"planCode":{"type":"string"}},"required":["id","email","emailVerified","name","avatarFileId","locale","timeZone","theme","docSurface","role","planCode"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["me"],"summary":"Удалить аккаунт (30 дней на восстановление)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"confirmEmail":{"type":"string","minLength":3,"maxLength":254}},"required":["confirmEmail"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"restoreUntil":{"type":"string"}},"required":["ok","restoreUntil"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notebooks/{id}":{"patch":{"tags":["notebooks"],"summary":"Изменить блокнот","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"stackId":{"type":["string","null"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"order":{"type":"integer"},"isDefault":{"type":"boolean"},"shareCount":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","stackId","name","color","icon","order","isDefault","shareCount","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["notebooks"],"summary":"Удалить блокнот в корзину","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"order":{"type":"integer"},"isDefault":{"type":"boolean"},"shareCount":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","stackId","name","color","icon","order","isDefault","shareCount","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/comments":{"get":{"tags":["comments"],"summary":"Комментарии к заметке","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"noteId":{"type":"string"},"parentId":{"type":["string","null"]},"authorId":{"type":"string"},"authorName":{"type":"string"},"body":{"type":"string"},"mentions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"createdAt":{"type":"string"},"editedAt":{"type":["string","null"]},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"required":["id","noteId","parentId","authorId","authorName","body","mentions","createdAt","editedAt","canEdit","canDelete"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["comments"],"summary":"Добавить комментарий или ответ","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"body":{"type":"string","minLength":1,"maxLength":5000},"parentId":{"type":["string","null"]},"mentions":{"type":"array","items":{"type":"string","minLength":1,"maxLength":64},"maxItems":50,"default":[]}},"required":["id","body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"noteId":{"type":"string"},"parentId":{"type":["string","null"]},"authorId":{"type":"string"},"authorName":{"type":"string"},"body":{"type":"string"},"mentions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"createdAt":{"type":"string"},"editedAt":{"type":["string","null"]},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"required":["id","noteId","parentId","authorId","authorName","body","mentions","createdAt","editedAt","canEdit","canDelete"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/duplicate":{"post":{"tags":["notes"],"summary":"Дублировать заметку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","maxLength":500}},"required":["id"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string"},"snippet":{"type":"string"},"pinned":{"type":"boolean"},"hasImages":{"type":"boolean"},"hasAudio":{"type":"boolean"},"hasChecklist":{"type":"boolean"},"preview":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["image"]},"attachmentId":{"type":"string"},"fileId":{"type":"string"},"imageCount":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","attachmentId","fileId","imageCount"]},{"type":"object","properties":{"kind":{"type":"string","enum":["checklist"]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"checked":{"type":"boolean"}},"required":["text","checked"]}},"more":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","items","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["quote"]},"text":{"type":"string"},"heading":{"type":"string"}},"required":["kind","text"]},{"type":"object","properties":{"kind":{"type":"string","enum":["table"]},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"},"heading":{"type":"string"}},"required":["kind","rows","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["attachment"]},"name":{"type":"string"},"mime":{"type":"string"},"heading":{"type":"string"}},"required":["kind","name","mime"]},{"type":"object","properties":{"kind":{"type":"string","enum":["text"]},"heading":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["empty"]}},"required":["kind"]}]},"tagIds":{"type":"array","items":{"type":"string"}},"attachmentCount":{"type":"integer"},"size":{"type":"integer"},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","title","snippet","pinned","hasImages","hasAudio","hasChecklist","tagIds","attachmentCount","size","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notebooks":{"get":{"tags":["notebooks"],"summary":"Список блокнотов","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"order":{"type":"integer"},"isDefault":{"type":"boolean"},"shareCount":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","stackId","name","color","icon","order","isDefault","shareCount","rev","createdAt","updatedAt"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["notebooks"],"summary":"Создать блокнот","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":80},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"stackId":{"type":["string","null"]}},"required":["id","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"order":{"type":"integer"},"isDefault":{"type":"boolean"},"shareCount":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","stackId","name","color","icon","order","isDefault","shareCount","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/backlinks":{"get":{"tags":["notes"],"summary":"Обратные ссылки на заметку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"noteId":{"type":"string"},"title":{"type":"string"},"updatedAt":{"type":"string"}},"required":["noteId","title","updatedAt"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/comments/{commentId}":{"patch":{"tags":["comments"],"summary":"Изменить свой комментарий","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"commentId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":5000},"mentions":{"type":"array","items":{"type":"string","minLength":1,"maxLength":64},"maxItems":50}},"required":["body"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"noteId":{"type":"string"},"parentId":{"type":["string","null"]},"authorId":{"type":"string"},"authorName":{"type":"string"},"body":{"type":"string"},"mentions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"createdAt":{"type":"string"},"editedAt":{"type":["string","null"]},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"required":["id","noteId","parentId","authorId","authorName","body","mentions","createdAt","editedAt","canEdit","canDelete"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["comments"],"summary":"Удалить комментарий (с ответами)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"commentId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/restore":{"post":{"tags":["notes"],"summary":"Восстановить заметку из корзины","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string"},"snippet":{"type":"string"},"pinned":{"type":"boolean"},"hasImages":{"type":"boolean"},"hasAudio":{"type":"boolean"},"hasChecklist":{"type":"boolean"},"preview":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["image"]},"attachmentId":{"type":"string"},"fileId":{"type":"string"},"imageCount":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","attachmentId","fileId","imageCount"]},{"type":"object","properties":{"kind":{"type":"string","enum":["checklist"]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"checked":{"type":"boolean"}},"required":["text","checked"]}},"more":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","items","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["quote"]},"text":{"type":"string"},"heading":{"type":"string"}},"required":["kind","text"]},{"type":"object","properties":{"kind":{"type":"string","enum":["table"]},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"},"heading":{"type":"string"}},"required":["kind","rows","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["attachment"]},"name":{"type":"string"},"mime":{"type":"string"},"heading":{"type":"string"}},"required":["kind","name","mime"]},{"type":"object","properties":{"kind":{"type":"string","enum":["text"]},"heading":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["empty"]}},"required":["kind"]}]},"tagIds":{"type":"array","items":{"type":"string"}},"attachmentCount":{"type":"integer"},"size":{"type":"integer"},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","title","snippet","pinned","hasImages","hasAudio","hasChecklist","tagIds","attachmentCount","size","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/content":{"get":{"tags":["notes"],"summary":"Тело заметки: doc, состояние Yjs и state vector","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"},{"schema":{"type":"string","maxLength":1048576},"required":false,"name":"since","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"doc":{},"update":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"stateVector":{"type":["string","null"]},"schemaVersion":{"type":"integer"},"rev":{"type":"integer"},"updatedAt":{"type":"string"}},"required":["id","update","lastEditedBy","stateVector","schemaVersion","rev","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["notes"],"summary":"Применить Yjs-обновление к телу заметки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"update":{"type":"string","minLength":1,"maxLength":8388608},"stateVector":{"type":"string","maxLength":1048576}},"required":["update"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"rev":{"type":"integer"},"stateVector":{"type":"string"},"missingUpdate":{"type":["string","null"]},"updatedAt":{"type":"string"},"size":{"type":"integer"}},"required":["rev","stateVector","missingUpdate","updatedAt","size"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/export":{"get":{"tags":["notes"],"summary":"Скачать заметку в HTML или Markdown (zip)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"},{"schema":{"type":"string","enum":["html","md"]},"required":true,"name":"format","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["notes"],"summary":"Запустить экспорт заметки в PDF","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"format":{"type":"string","enum":["pdf"]}},"required":["format"],"additionalProperties":false}}}},"responses":{"202":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["notePdf","account"]},"noteId":{"type":["string","null"]},"status":{"type":"string","enum":["queued","running","done","failed","expired"]},"fileName":{"type":"string"},"size":{"type":"integer"},"progress":{"type":"object","properties":{"current":{"type":"integer"},"total":{"type":"integer"}},"required":["current","total"]},"error":{"type":["string","null"]},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"downloadUrl":{"type":["string","null"]}},"required":["id","kind","noteId","status","fileName","size","progress","error","createdAt","finishedAt","expiresAt","downloadUrl"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/versions/{vid}":{"get":{"tags":["notes"],"summary":"Версия заметки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"vid","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"authorId":{"type":"string"},"authorName":{"type":["string","null"]},"size":{"type":"integer"},"createdAt":{"type":"string"},"doc":{},"text":{"type":"string"}},"required":["id","title","authorId","authorName","size","createdAt","text"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/participants":{"get":{"tags":["comments"],"summary":"Кого можно упомянуть в комментарии","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/versions/{vid}/copy":{"post":{"tags":["notes"],"summary":"Создать заметку из версии","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"vid","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/bulk":{"post":{"tags":["notes"],"summary":"Массовая операция над заметками","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":500},"action":{"type":"string","enum":["move","trash","restore","pin","unpin","tag"]},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"tagId":{"type":"string"}},"required":["ids","action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"affected":{"type":"integer"}},"required":["affected"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/versions/{vid}/restore":{"post":{"tags":["notes"],"summary":"Восстановить версию заметки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"vid","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications/read-all":{"post":{"tags":["notifications"],"summary":"Прочитать все уведомления","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"updated":{"type":"integer"}},"required":["updated"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/counts":{"get":{"tags":["notes"],"summary":"Счётчики заметок по разделам и блокнотам","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"all":{"type":"integer"},"pinned":{"type":"integer"},"trash":{"type":"integer"},"byNotebook":{"type":"object","additionalProperties":{"type":"integer"}},"byTag":{"type":"object","additionalProperties":{"type":"integer"}}},"required":["all","pinned","trash","byNotebook","byTag"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/collection-counts":{"get":{"tags":["notes"],"summary":"Всего и закреплённых заметок в коллекции","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"notebookId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"folderId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"tagId","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"includeDescendants","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"pinned":{"type":"integer"}},"required":["total","pinned"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}/versions":{"get":{"tags":["notes"],"summary":"История версий заметки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"authorId":{"type":"string"},"authorName":{"type":["string","null"]},"size":{"type":"integer"},"createdAt":{"type":"string"}},"required":["id","title","authorId","authorName","size","createdAt"]}},"depth":{"type":"integer"}},"required":["items","depth"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/{id}":{"get":{"tags":["notes"],"summary":"Заметка с метаданными и телом","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string"},"snippet":{"type":"string"},"pinned":{"type":"boolean"},"hasImages":{"type":"boolean"},"hasAudio":{"type":"boolean"},"hasChecklist":{"type":"boolean"},"preview":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["image"]},"attachmentId":{"type":"string"},"fileId":{"type":"string"},"imageCount":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","attachmentId","fileId","imageCount"]},{"type":"object","properties":{"kind":{"type":"string","enum":["checklist"]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"checked":{"type":"boolean"}},"required":["text","checked"]}},"more":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","items","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["quote"]},"text":{"type":"string"},"heading":{"type":"string"}},"required":["kind","text"]},{"type":"object","properties":{"kind":{"type":"string","enum":["table"]},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"},"heading":{"type":"string"}},"required":["kind","rows","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["attachment"]},"name":{"type":"string"},"mime":{"type":"string"},"heading":{"type":"string"}},"required":["kind","name","mime"]},{"type":"object","properties":{"kind":{"type":"string","enum":["text"]},"heading":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["empty"]}},"required":["kind"]}]},"tagIds":{"type":"array","items":{"type":"string"}},"attachmentCount":{"type":"integer"},"size":{"type":"integer"},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]},"doc":{},"sourceUrl":{"type":["string","null"]},"text":{"type":"string"},"access":{"type":"object","properties":{"ownerId":{"type":"string"},"role":{"type":"string","enum":["viewer","editor","manager","owner"]}},"required":["ownerId","role"]},"lastEditedByName":{"type":["string","null"]}},"required":["id","notebookId","folderId","title","snippet","pinned","hasImages","hasAudio","hasChecklist","tagIds","attachmentCount","size","lastEditedBy","rev","createdAt","updatedAt","deletedAt","sourceUrl","text","access","lastEditedByName"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["notes"],"summary":"Изменить метаданные заметки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":500},"pinned":{"type":"boolean"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"tagIds":{"type":"array","items":{"type":"string"},"maxItems":100}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string"},"snippet":{"type":"string"},"pinned":{"type":"boolean"},"hasImages":{"type":"boolean"},"hasAudio":{"type":"boolean"},"hasChecklist":{"type":"boolean"},"preview":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["image"]},"attachmentId":{"type":"string"},"fileId":{"type":"string"},"imageCount":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","attachmentId","fileId","imageCount"]},{"type":"object","properties":{"kind":{"type":"string","enum":["checklist"]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"checked":{"type":"boolean"}},"required":["text","checked"]}},"more":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","items","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["quote"]},"text":{"type":"string"},"heading":{"type":"string"}},"required":["kind","text"]},{"type":"object","properties":{"kind":{"type":"string","enum":["table"]},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"},"heading":{"type":"string"}},"required":["kind","rows","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["attachment"]},"name":{"type":"string"},"mime":{"type":"string"},"heading":{"type":"string"}},"required":["kind","name","mime"]},{"type":"object","properties":{"kind":{"type":"string","enum":["text"]},"heading":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["empty"]}},"required":["kind"]}]},"tagIds":{"type":"array","items":{"type":"string"}},"attachmentCount":{"type":"integer"},"size":{"type":"integer"},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","title","snippet","pinned","hasImages","hasAudio","hasChecklist","tagIds","attachmentCount","size","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["notes"],"summary":"Удалить заметку в корзину","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string"},"snippet":{"type":"string"},"pinned":{"type":"boolean"},"hasImages":{"type":"boolean"},"hasAudio":{"type":"boolean"},"hasChecklist":{"type":"boolean"},"preview":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["image"]},"attachmentId":{"type":"string"},"fileId":{"type":"string"},"imageCount":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","attachmentId","fileId","imageCount"]},{"type":"object","properties":{"kind":{"type":"string","enum":["checklist"]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"checked":{"type":"boolean"}},"required":["text","checked"]}},"more":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","items","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["quote"]},"text":{"type":"string"},"heading":{"type":"string"}},"required":["kind","text"]},{"type":"object","properties":{"kind":{"type":"string","enum":["table"]},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"},"heading":{"type":"string"}},"required":["kind","rows","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["attachment"]},"name":{"type":"string"},"mime":{"type":"string"},"heading":{"type":"string"}},"required":["kind","name","mime"]},{"type":"object","properties":{"kind":{"type":"string","enum":["text"]},"heading":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["empty"]}},"required":["kind"]}]},"tagIds":{"type":"array","items":{"type":"string"}},"attachmentCount":{"type":"integer"},"size":{"type":"integer"},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","title","snippet","pinned","hasImages","hasAudio","hasChecklist","tagIds","attachmentCount","size","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/meta":{"get":{"tags":["notes"],"summary":"Метаданные карточек: комментарии, общий доступ, автор правки (до 100 заметок)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"ids","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"object","additionalProperties":{"type":"object","properties":{"commentCount":{"type":"integer"},"shared":{"type":"boolean"},"lastEditor":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarFileId":{"type":["string","null"]}},"required":["id","name","avatarFileId"]}},"required":["commentCount","shared","lastEditor"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes/clip":{"post":{"tags":["notes"],"summary":"Создать заметку из веб-страницы (URL или HTML)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string","maxLength":2048,"format":"uri"},"html":{"type":"string","minLength":1,"maxLength":5242880},"notebookId":{"type":"string"},"title":{"type":"string","maxLength":500},"extract":{"type":"string","enum":["article","none"]},"tagIds":{"type":"array","items":{"type":"string"},"maxItems":50}},"required":["id"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"noteId":{"type":"string"},"title":{"type":"string"},"images":{"type":"integer"},"losses":{"type":"array","items":{"type":"string"}}},"required":["noteId","title","images","losses"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications/read":{"post":{"tags":["notifications"],"summary":"Пометить уведомления прочитанными","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":100}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"updated":{"type":"integer"}},"required":["updated"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/p/{token}":{"get":{"tags":["sharing"],"summary":"Публичная ссылка: содержимое только для чтения","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"token","in":"path"},{"schema":{"type":"string"},"required":false,"name":"note","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"targetType":{"type":"string","enum":["notebook","note"]},"title":{"type":"string"},"ownerName":{"type":"string"},"notes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","title","updatedAt"]}},"note":{"type":["object","null"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"html":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","title","html","updatedAt"]}},"required":["targetType","title","ownerName","notes","note"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/p/{token}/reports":{"post":{"tags":["sharing"],"summary":"Пожаловаться на публичную ссылку","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"token","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":3,"maxLength":2000},"email":{"type":"string","maxLength":254}},"required":["reason"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notes":{"get":{"tags":["notes"],"summary":"Список заметок (фильтр по блокноту и закреплению, сортировка, курсор)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"notebookId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"folderId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"tagId","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"includeDescendants","in":"query"},{"schema":{"type":"string","maxLength":200},"required":false,"name":"q","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"pinned","in":"query"},{"schema":{"type":"string","enum":["updated","created","title"],"default":"updated"},"required":false,"name":"sort","in":"query"},{"schema":{"type":"string","maxLength":1000},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":200,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string"},"snippet":{"type":"string"},"pinned":{"type":"boolean"},"hasImages":{"type":"boolean"},"hasAudio":{"type":"boolean"},"hasChecklist":{"type":"boolean"},"preview":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["image"]},"attachmentId":{"type":"string"},"fileId":{"type":"string"},"imageCount":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","attachmentId","fileId","imageCount"]},{"type":"object","properties":{"kind":{"type":"string","enum":["checklist"]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"checked":{"type":"boolean"}},"required":["text","checked"]}},"more":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","items","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["quote"]},"text":{"type":"string"},"heading":{"type":"string"}},"required":["kind","text"]},{"type":"object","properties":{"kind":{"type":"string","enum":["table"]},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"},"heading":{"type":"string"}},"required":["kind","rows","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["attachment"]},"name":{"type":"string"},"mime":{"type":"string"},"heading":{"type":"string"}},"required":["kind","name","mime"]},{"type":"object","properties":{"kind":{"type":"string","enum":["text"]},"heading":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["empty"]}},"required":["kind"]}]},"tagIds":{"type":"array","items":{"type":"string"}},"attachmentCount":{"type":"integer"},"size":{"type":"integer"},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","title","snippet","pinned","hasImages","hasAudio","hasChecklist","tagIds","attachmentCount","size","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["notes"],"summary":"Создать заметку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string","maxLength":500}},"required":["id"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string"},"snippet":{"type":"string"},"pinned":{"type":"boolean"},"hasImages":{"type":"boolean"},"hasAudio":{"type":"boolean"},"hasChecklist":{"type":"boolean"},"preview":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["image"]},"attachmentId":{"type":"string"},"fileId":{"type":"string"},"imageCount":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","attachmentId","fileId","imageCount"]},{"type":"object","properties":{"kind":{"type":"string","enum":["checklist"]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"checked":{"type":"boolean"}},"required":["text","checked"]}},"more":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","items","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["quote"]},"text":{"type":"string"},"heading":{"type":"string"}},"required":["kind","text"]},{"type":"object","properties":{"kind":{"type":"string","enum":["table"]},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"},"heading":{"type":"string"}},"required":["kind","rows","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["attachment"]},"name":{"type":"string"},"mime":{"type":"string"},"heading":{"type":"string"}},"required":["kind","name","mime"]},{"type":"object","properties":{"kind":{"type":"string","enum":["text"]},"heading":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["empty"]}},"required":["kind"]}]},"tagIds":{"type":"array","items":{"type":"string"}},"attachmentCount":{"type":"integer"},"size":{"type":"integer"},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","title","snippet","pinned","hasImages","hasAudio","hasChecklist","tagIds","attachmentCount","size","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/theme":{"put":{"tags":["me"],"summary":"Выбрать тему оформления и поверхность документа","description":"Ставит cookie `kartoteq_theme` и/или `kartoteq_doc_surface`; при наличии сессии сохраняет выбор в профиле.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"theme":{"type":"string","enum":["system","light","dark"]},"docSurface":{"type":"string","enum":["light","dark"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"theme":{"type":"string","enum":["system","light","dark"]},"docSurface":{"type":"string","enum":["light","dark"]}},"additionalProperties":false}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stacks":{"get":{"tags":["stacks"],"summary":"Список стопок","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","order","rev","createdAt","updatedAt"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["stacks"],"summary":"Создать стопку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","order","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stacks/order":{"patch":{"tags":["stacks"],"summary":"Переупорядочить стопки","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":500}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","order","rev","createdAt","updatedAt"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stacks/{id}":{"patch":{"tags":["stacks"],"summary":"Переименовать стопку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","order","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["stacks"],"summary":"Удалить стопку (блокноты остаются вне стопок)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","order","rev","createdAt","updatedAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications":{"get":{"tags":["notifications"],"summary":"Лента уведомлений","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["invite","roleChanged","mention","comment","reply"]},"actorId":{"type":"string"},"payload":{"type":"object","properties":{"actorName":{"type":"string"},"ownerId":{"type":"string"},"title":{"type":"string"},"targetType":{"type":"string","enum":["note","notebook"]},"targetId":{"type":"string"},"role":{"type":"string"},"noteId":{"type":"string"},"commentId":{"type":"string"},"excerpt":{"type":"string"}},"required":["actorName","ownerId","title"]},"read":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","type","actorId","payload","read","createdAt"]}},"nextCursor":{"type":["string","null"]},"unread":{"type":"integer"}},"required":["items","nextCursor","unread"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/push-subscriptions":{"get":{"tags":["notifications"],"summary":"Состояние Web Push пользователя","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"publicKey":{"type":["string","null"]},"settings":{"type":"object","properties":{"invite":{"type":"boolean"},"roleChanged":{"type":"boolean"},"mention":{"type":"boolean"},"comment":{"type":"boolean"},"reply":{"type":"boolean"}},"required":["invite","roleChanged","mention","comment","reply"]},"devices":{"type":"integer"}},"required":["available","publicKey","settings","devices"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["notifications"],"summary":"Подписать устройство на push-уведомления","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string","maxLength":2048,"format":"uri"},"keys":{"type":"object","properties":{"p256dh":{"type":"string","minLength":1,"maxLength":256},"auth":{"type":"string","minLength":1,"maxLength":256}},"required":["p256dh","auth"],"additionalProperties":false}},"required":["endpoint","keys"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"publicKey":{"type":["string","null"]},"settings":{"type":"object","properties":{"invite":{"type":"boolean"},"roleChanged":{"type":"boolean"},"mention":{"type":"boolean"},"comment":{"type":"boolean"},"reply":{"type":"boolean"}},"required":["invite","roleChanged","mention","comment","reply"]},"devices":{"type":"integer"}},"required":["available","publicKey","settings","devices"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["notifications"],"summary":"Отписать устройство","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string","maxLength":2048,"format":"uri"}},"required":["endpoint"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"publicKey":{"type":["string","null"]},"settings":{"type":"object","properties":{"invite":{"type":"boolean"},"roleChanged":{"type":"boolean"},"mention":{"type":"boolean"},"comment":{"type":"boolean"},"reply":{"type":"boolean"}},"required":["invite","roleChanged","mention","comment","reply"]},"devices":{"type":"integer"}},"required":["available","publicKey","settings","devices"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/push-subscriptions/settings":{"patch":{"tags":["notifications"],"summary":"Настройки push по типам событий","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"invite":{"type":"boolean"},"roleChanged":{"type":"boolean"},"mention":{"type":"boolean"},"comment":{"type":"boolean"},"reply":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"invite":{"type":"boolean"},"roleChanged":{"type":"boolean"},"mention":{"type":"boolean"},"comment":{"type":"boolean"},"reply":{"type":"boolean"}},"required":["invite","roleChanged","mention","comment","reply"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/trash":{"get":{"tags":["trash"],"summary":"Корзина: заметки (курсор), блокноты, папки и файлы","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","maxLength":1000},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":200,"default":50},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"title":{"type":"string"},"snippet":{"type":"string"},"pinned":{"type":"boolean"},"hasImages":{"type":"boolean"},"hasAudio":{"type":"boolean"},"hasChecklist":{"type":"boolean"},"preview":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["image"]},"attachmentId":{"type":"string"},"fileId":{"type":"string"},"imageCount":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","attachmentId","fileId","imageCount"]},{"type":"object","properties":{"kind":{"type":"string","enum":["checklist"]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"checked":{"type":"boolean"}},"required":["text","checked"]}},"more":{"type":"integer"},"heading":{"type":"string"}},"required":["kind","items","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["quote"]},"text":{"type":"string"},"heading":{"type":"string"}},"required":["kind","text"]},{"type":"object","properties":{"kind":{"type":"string","enum":["table"]},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"},"heading":{"type":"string"}},"required":["kind","rows","more"]},{"type":"object","properties":{"kind":{"type":"string","enum":["attachment"]},"name":{"type":"string"},"mime":{"type":"string"},"heading":{"type":"string"}},"required":["kind","name","mime"]},{"type":"object","properties":{"kind":{"type":"string","enum":["text"]},"heading":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["empty"]}},"required":["kind"]}]},"tagIds":{"type":"array","items":{"type":"string"}},"attachmentCount":{"type":"integer"},"size":{"type":"integer"},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","title","snippet","pinned","hasImages","hasAudio","hasChecklist","tagIds","attachmentCount","size","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}},"nextCursor":{"type":["string","null"]},"notebooks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"stackId":{"type":["string","null"]},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string","enum":["book","briefcase","home","star","lightbulb","graduation-cap","heart","folder"]},"order":{"type":"integer"},"isDefault":{"type":"boolean"},"shareCount":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","stackId","name","color","icon","order","isDefault","shareCount","rev","createdAt","updatedAt"]}},"folders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"parentId":{"type":["string","null"]},"name":{"type":"string"},"order":{"type":"integer"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":"string"}},"required":["id","notebookId","parentId","name","order","rev","createdAt","updatedAt","deletedAt"]}},"fileItems":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"notebookId":{"type":"string"},"folderId":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":"string","enum":["image","audio","video","pdf","text","office","archive","other"]},"mime":{"type":"string"},"size":{"type":"integer"},"blobId":{"type":"string"},"versionId":{"type":"string"},"thumbBlobId":{"type":["string","null"]},"posterBlobId":{"type":["string","null"]},"lastEditedBy":{"type":"string"},"rev":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":["string","null"]}},"required":["id","notebookId","folderId","name","kind","mime","size","blobId","versionId","thumbBlobId","posterBlobId","lastEditedBy","rev","createdAt","updatedAt","deletedAt"]}}},"required":["items","nextCursor","notebooks","folders","fileItems"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/trash/empty":{"post":{"tags":["trash"],"summary":"Очистить корзину","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"integer"}},"required":["deleted"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/trash/purge":{"post":{"tags":["trash"],"summary":"Удалить заметки из корзины навсегда","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":500}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"integer"}},"required":["deleted"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads":{"post":{"tags":["files"],"summary":"Создать сессию загрузки по частям (часть ≤ 4 МБ)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":255},"size":{"type":"integer","exclusiveMinimum":0,"maximum":1073741824},"mime":{"type":"string","maxLength":255},"purpose":{"type":"string","enum":["attachment","import"]},"notebookId":{"type":"string"},"noteId":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["id","name","size"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"size":{"type":"integer"},"partSize":{"type":"integer"},"receivedParts":{"type":"array","items":{"type":"integer"}},"status":{"type":"string","enum":["open","completed"]},"result":{"type":["object","null"],"properties":{"fileId":{"type":"string"},"sha256":{"type":"string"},"size":{"type":"integer"},"mime":{"type":"string"},"deduplicated":{"type":"boolean"}},"required":["fileId","sha256","size","mime","deduplicated"]}},"required":["id","name","size","partSize","receivedParts","status","result"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads/{id}":{"get":{"tags":["files"],"summary":"Состояние загрузки и принятые части","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"size":{"type":"integer"},"partSize":{"type":"integer"},"receivedParts":{"type":"array","items":{"type":"integer"}},"status":{"type":"string","enum":["open","completed"]},"result":{"type":["object","null"],"properties":{"fileId":{"type":"string"},"sha256":{"type":"string"},"size":{"type":"integer"},"mime":{"type":"string"},"deduplicated":{"type":"boolean"}},"required":["fileId","sha256","size","mime","deduplicated"]}},"required":["id","name","size","partSize","receivedParts","status","result"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads/{id}/{n}":{"put":{"tags":["files"],"summary":"Загрузить часть n (≤ 4 МБ)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","pattern":"^\\d{1,6}$"},"required":true,"name":"n","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"size":{"type":"integer"},"partSize":{"type":"integer"},"receivedParts":{"type":"array","items":{"type":"integer"}},"status":{"type":"string","enum":["open","completed"]},"result":{"type":["object","null"],"properties":{"fileId":{"type":"string"},"sha256":{"type":"string"},"size":{"type":"integer"},"mime":{"type":"string"},"deduplicated":{"type":"boolean"}},"required":["fileId","sha256","size","mime","deduplicated"]}},"required":["id","name","size","partSize","receivedParts","status","result"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads/{id}/complete":{"post":{"tags":["files"],"summary":"Завершить загрузку и получить fileId","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string"},"sha256":{"type":"string"},"size":{"type":"integer"},"mime":{"type":"string"},"deduplicated":{"type":"boolean"}},"required":["fileId","sha256","size","mime","deduplicated"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags":{"get":{"tags":["tags"],"summary":"Список тегов с иерархией","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"},{"schema":{"type":"string"},"required":false,"name":"noteId","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentId":{"type":["string","null"]},"path":{"type":"array","items":{"type":"string"}},"color":{"type":"string"},"rev":{"type":"integer"}},"required":["id","name","parentId","path","color","rev"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["tags"],"summary":"Создать тег","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"},{"schema":{"type":"string"},"required":false,"name":"noteId","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100},"parentId":{"type":["string","null"]},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["id","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentId":{"type":["string","null"]},"path":{"type":"array","items":{"type":"string"}},"color":{"type":"string"},"rev":{"type":"integer"}},"required":["id","name","parentId","path","color","rev"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/search":{"get":{"tags":["search"],"summary":"Поиск по своим и доступным заметкам","description":"Строка `q` поддерживает `notebook:`, `tag:`, `created:`, `updated:`, `has:`, `-исключение` и «фразу в кавычках».","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","maxLength":500,"default":""},"required":false,"name":"q","in":"query"},{"schema":{"type":"array","items":{"type":"string"},"maxItems":100},"required":false,"name":"notebookIds","in":"query"},{"schema":{"type":"array","items":{"type":"string"},"maxItems":100},"required":false,"name":"tagIds","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["attachment","image","audio","checklist"]},"maxItems":100},"required":false,"name":"has","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"required":false,"name":"updatedFrom","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"required":false,"name":"updatedTo","in":"query"},{"schema":{"type":"string","enum":["relevance","updated"],"default":"relevance"},"required":false,"name":"sort","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1000},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"notebookId":{"type":"string"},"title":{"type":"string"},"snippet":{"type":"string"},"tagIds":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":"string"},"matches":{"type":"integer"},"score":{"type":"number"},"shared":{"type":"boolean"}},"required":["id","ownerId","notebookId","title","snippet","tagIds","updatedAt","matches","score","shared"]}},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"notebookId":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"snippet":{"type":"string"},"updatedAt":{"type":"string"},"shared":{"type":"boolean"}},"required":["id","ownerId","notebookId","name","kind","snippet","updatedAt","shared"]}},"nextCursor":{"type":["string","null"]},"tookMs":{"type":"number"},"terms":{"type":"array","items":{"type":"string"}},"phrases":{"type":"array","items":{"type":"string"}},"offline":{"type":"boolean"}},"required":["items","files","nextCursor","tookMs","terms","phrases"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/saved-searches":{"get":{"tags":["search"],"summary":"Сохранённые поиски","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"query":{"type":"string"},"filters":{"type":"object","properties":{"notebookIds":{"type":"array","items":{"type":"string"},"maxItems":100},"tagIds":{"type":"array","items":{"type":"string"},"maxItems":100},"has":{"type":"array","items":{"type":"string","enum":["attachment","image","audio","checklist"]},"maxItems":4},"updatedWithinDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false},"rev":{"type":"integer"}},"required":["id","name","query","filters","rev"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["search"],"summary":"Сохранить поиск","security":[{"sessionCookie":[]},{"bearerToken":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":80},"query":{"type":"string","maxLength":500},"filters":{"type":"object","properties":{"notebookIds":{"type":"array","items":{"type":"string"},"maxItems":100},"tagIds":{"type":"array","items":{"type":"string"},"maxItems":100},"has":{"type":"array","items":{"type":"string","enum":["attachment","image","audio","checklist"]},"maxItems":4},"updatedWithinDays":{"type":"integer","minimum":1,"maximum":3650}},"default":{},"additionalProperties":false}},"required":["id","name","query"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"query":{"type":"string"},"filters":{"type":"object","properties":{"notebookIds":{"type":"array","items":{"type":"string"},"maxItems":100},"tagIds":{"type":"array","items":{"type":"string"},"maxItems":100},"has":{"type":"array","items":{"type":"string","enum":["attachment","image","audio","checklist"]},"maxItems":4},"updatedWithinDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false},"rev":{"type":"integer"}},"required":["id","name","query","filters","rev"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/saved-searches/{id}":{"patch":{"tags":["search"],"summary":"Изменить сохранённый поиск","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"query":{"type":"string","maxLength":500},"filters":{"type":"object","properties":{"notebookIds":{"type":"array","items":{"type":"string"},"maxItems":100},"tagIds":{"type":"array","items":{"type":"string"},"maxItems":100},"has":{"type":"array","items":{"type":"string","enum":["attachment","image","audio","checklist"]},"maxItems":4},"updatedWithinDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"query":{"type":"string"},"filters":{"type":"object","properties":{"notebookIds":{"type":"array","items":{"type":"string"},"maxItems":100},"tagIds":{"type":"array","items":{"type":"string"},"maxItems":100},"has":{"type":"array","items":{"type":"string","enum":["attachment","image","audio","checklist"]},"maxItems":4},"updatedWithinDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false},"rev":{"type":"integer"}},"required":["id","name","query","filters","rev"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["search"],"summary":"Удалить сохранённый поиск","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"query":{"type":"string"},"filters":{"type":"object","properties":{"notebookIds":{"type":"array","items":{"type":"string"},"maxItems":100},"tagIds":{"type":"array","items":{"type":"string"},"maxItems":100},"has":{"type":"array","items":{"type":"string","enum":["attachment","image","audio","checklist"]},"maxItems":4},"updatedWithinDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false},"rev":{"type":"integer"}},"required":["id","name","query","filters","rev"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags/{id}":{"patch":{"tags":["tags"],"summary":"Изменить тег","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"parentId":{"type":["string","null"]},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentId":{"type":["string","null"]},"path":{"type":"array","items":{"type":"string"}},"color":{"type":"string"},"rev":{"type":"integer"}},"required":["id","name","parentId","path","color","rev"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["tags"],"summary":"Удалить тег","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentId":{"type":["string","null"]},"path":{"type":"array","items":{"type":"string"}},"color":{"type":"string"},"rev":{"type":"integer"}},"required":["id","name","parentId","path","color","rev"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags/{id}/merge":{"post":{"tags":["tags"],"summary":"Слить тег в другой","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"targetId":{"type":"string"}},"required":["targetId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentId":{"type":["string","null"]},"path":{"type":"array","items":{"type":"string"}},"color":{"type":"string"},"rev":{"type":"integer"}},"required":["id","name","parentId","path","color","rev"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/shares":{"get":{"tags":["sharing"],"summary":"Участники и приглашения объекта","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","enum":["notebook","note"]},"required":true,"name":"targetType","in":"query"},{"schema":{"type":"string"},"required":true,"name":"targetId","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}},"required":["id","name","email"]},"shares":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"ownerId":{"type":"string"},"role":{"type":"string","enum":["viewer","editor","manager"]},"subject":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}},"required":["id","name","email"]},"grantedBy":{"type":"string"},"grantedAt":{"type":"string"}},"required":["id","targetType","targetId","ownerId","role","subject","grantedBy","grantedAt"]}},"invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["email","link"]},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"email":{"type":["string","null"]},"role":{"type":"string","enum":["viewer","editor","manager"]},"expiresAt":{"type":"string"},"maxUses":{"type":["number","null"]},"uses":{"type":"number"},"createdAt":{"type":"string"}},"required":["id","kind","targetType","targetId","email","role","expiresAt","maxUses","uses","createdAt"]}}},"required":["owner","shares","invites"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["sharing"],"summary":"Выдать доступ по email","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"email":{"type":"string","minLength":3,"maxLength":254,"pattern":"^[^\\s@]+@[^\\s@]+$"},"role":{"type":"string","enum":["viewer","editor","manager"]}},"required":["targetType","targetId","email","role"],"additionalProperties":false}}}},"responses":{"201":{"description":"Успешный ответ","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["share"]},"share":{"type":"object","properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"ownerId":{"type":"string"},"role":{"type":"string","enum":["viewer","editor","manager"]},"subject":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}},"required":["id","name","email"]},"grantedBy":{"type":"string"},"grantedAt":{"type":"string"}},"required":["id","targetType","targetId","ownerId","role","subject","grantedBy","grantedAt"]}},"required":["kind","share"]},{"type":"object","properties":{"kind":{"type":"string","enum":["invite"]},"invite":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["email","link"]},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"email":{"type":["string","null"]},"role":{"type":"string","enum":["viewer","editor","manager"]},"expiresAt":{"type":"string"},"maxUses":{"type":["number","null"]},"uses":{"type":"number"},"createdAt":{"type":"string"}},"required":["id","kind","targetType","targetId","email","role","expiresAt","maxUses","uses","createdAt"]}},"required":["kind","invite"]}]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/shares/{id}":{"patch":{"tags":["sharing"],"summary":"Изменить роль участника","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["viewer","editor","manager"]}},"required":["role"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["share"]},"share":{"type":"object","properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"ownerId":{"type":"string"},"role":{"type":"string","enum":["viewer","editor","manager"]},"subject":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}},"required":["id","name","email"]},"grantedBy":{"type":"string"},"grantedAt":{"type":"string"}},"required":["id","targetType","targetId","ownerId","role","subject","grantedBy","grantedAt"]}},"required":["kind","share"]},{"type":"object","properties":{"kind":{"type":"string","enum":["invite"]},"invite":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["email","link"]},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"email":{"type":["string","null"]},"role":{"type":"string","enum":["viewer","editor","manager"]},"expiresAt":{"type":"string"},"maxUses":{"type":["number","null"]},"uses":{"type":"number"},"createdAt":{"type":"string"}},"required":["id","kind","targetType","targetId","email","role","expiresAt","maxUses","uses","createdAt"]}},"required":["kind","invite"]}]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["sharing"],"summary":"Снять доступ или выйти из общего доступа","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/shares/incoming":{"get":{"tags":["sharing"],"summary":"Блокноты и заметки, к которым открыт доступ","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"ownerId":{"type":"string"},"ownerName":{"type":"string"},"title":{"type":"string"},"role":{"type":"string","enum":["viewer","editor","manager"]},"grantedAt":{"type":"string"}},"required":["id","targetType","targetId","ownerId","ownerName","title","role","grantedAt"]}}},"required":["items"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/shares/log":{"get":{"tags":["sharing"],"summary":"Журнал выдачи и снятия доступа","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","enum":["notebook","note"]},"required":true,"name":"targetType","in":"query"},{"schema":{"type":"string"},"required":true,"name":"targetId","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"action":{"type":"string","enum":["share.grant","share.role","share.revoke","share.leave","share.invite","share.invite.revoke","share.link"]},"actorName":{"type":"string"},"subjectName":{"type":["string","null"]},"email":{"type":["string","null"]},"role":{"type":["string","null"],"enum":["viewer","editor","manager",null]},"createdAt":{"type":"string"}},"required":["id","action","actorName","subjectName","email","role","createdAt"]}}},"required":["items"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public-links":{"get":{"tags":["sharing"],"summary":"Публичная ссылка объекта","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","enum":["notebook","note"]},"required":true,"name":"targetType","in":"query"},{"schema":{"type":"string"},"required":true,"name":"targetId","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"link":{"type":["object","null"],"properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":["string","null"]},"views":{"type":"integer"},"createdAt":{"type":"string"}},"required":["id","targetType","targetId","url","expiresAt","views","createdAt"]}},"required":["link"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["sharing"],"summary":"Включить публичную ссылку (только чтение)","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":false,"name":"owner","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"expiresInDays":{"type":["integer","null"],"minimum":1,"maximum":365,"default":null}},"required":["targetType","targetId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"targetType":{"type":"string","enum":["notebook","note"]},"targetId":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":["string","null"]},"views":{"type":"integer"},"createdAt":{"type":"string"}},"required":["id","targetType","targetId","url","expiresAt","views","createdAt"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public-links/{id}":{"delete":{"tags":["sharing"],"summary":"Отозвать публичную ссылку","security":[{"sessionCookie":[]},{"bearerToken":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/p/{token}/files/{id}":{"get":{"tags":["sharing"],"summary":"Файл публичной страницы по подписанной ссылке","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"token","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":64},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","exclusiveMinimum":0},"required":true,"name":"exp","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"sig","in":"query"},{"schema":{"type":"string","maxLength":255},"required":false,"name":"name","in":"query"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Неверные данные запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/realtime/token":{"post":{"tags":["notes"],"summary":"Токен подключения к WebSocket-сервису совместного редактирования","security":[{"sessionCookie":[]},{"bearerToken":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":["string","null"]},"token":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["url","token","expiresAt","user"]}}}},"401":{"description":"Требуется вход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Слишком много запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{}}