{"openapi":"3.1.0","info":{"title":"orthodox-calendar.ru API","description":"REST API православного календаря: память святых, богослужебные чтения, полный текст Священного Писания. Логика портирована с выверенных WordPress-плагинов (Bg Orthodox Calendar + Bg Biblie References), см. `docs/teardown.md` в репо.\n\n**Базовый контент бесплатен.** Эндпоинты read-only, авторизация не требуется.","version":"0.1.0"},"paths":{"/api/health":{"get":{"tags":["system"],"summary":"Healthcheck","description":"Используется docker-compose для проверки готовности контейнера.","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Api Health Get"}}}}}}},"/api/day/{target}":{"get":{"tags":["day"],"summary":"Полная информация о дне","description":"Возвращает события дня (память святых, иконы, праздники), название седмицы, свойства (ранг, постный/воскресный) и список ссылок-зачал. **Текст чтений** запрашивайте отдельно через `/api/day/{date}/readings` — это дороже.","operationId":"get_day_api_day__target__get","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","format":"date","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DayOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/day/{target}/readings":{"get":{"tags":["day"],"summary":"Чтения дня с полным текстом Писания","description":"Собирает Апостол и Евангелие по приоритетам (см. teardown §7), разрешает ссылки в реальные стихи через парсер. Включает чтения «накануне с вечера» — это завтрашние рядовые «под зачало», если завтра большой праздник, и сегодня — суббота.","operationId":"get_day_readings_api_day__target__readings_get","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","format":"date","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DayReadingsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bible/books":{"get":{"tags":["bible"],"summary":"Список всех книг Писания (метаданные)","description":"Возвращает 77 книг (Ветхий + Новый Заветы) с краткими и полными названиями, признаком Завета и количеством глав. Тексты — отдельно.","operationId":"list_books_api_bible_books_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BookOut"},"type":"array","title":"Response List Books Api Bible Books Get"}}}}}}},"/api/bible/{book_code}/{chapter}":{"get":{"tags":["bible"],"summary":"Одна глава целиком","description":"Все стихи указанной главы конкретной книги.","operationId":"get_chapter_api_bible__book_code___chapter__get","parameters":[{"name":"book_code","in":"path","required":true,"schema":{"type":"string","title":"Book Code"}},{"name":"chapter","in":"path","required":true,"schema":{"type":"integer","title":"Chapter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BibleChapterOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bible/lookup":{"get":{"tags":["bible"],"summary":"Найти стихи по ссылке-зачалу","description":"Принимает строку-ссылку в любом из поддерживаемых форматов (`Ин.1:1-3`, `Мк.15:43-16:8`, `Пс.1-8`, и т.п.) и возвращает плоский список стихов всех её диапазонов.","operationId":"lookup_reference_api_bible_lookup_get","parameters":[{"name":"ref","in":"query","required":true,"schema":{"type":"string","description":"Ссылка на Писание","examples":["Ин.1:1-3"],"title":"Ref"},"description":"Ссылка на Писание"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VerseOut"},"title":"Response Lookup Reference Api Bible Lookup Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/month/{year}/{month}":{"get":{"tags":["calendar-grid"],"summary":"Сетка месяца","description":"Для каждого дня месяца — ранг, флаги поста/воскресенья и название главного события (если есть). Удобно для построения календарной сетки.","operationId":"get_month_api_month__year___month__get","parameters":[{"name":"year","in":"path","required":true,"schema":{"type":"integer","maximum":2200,"minimum":1900,"title":"Year"}},{"name":"month","in":"path","required":true,"schema":{"type":"integer","maximum":12,"minimum":1,"title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonthOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/year/{year}":{"get":{"tags":["calendar-grid"],"summary":"Сетка года (12 месяцев + дата Пасхи)","description":"Полная сетка года для построения «годового вида» календаря. Внимание: ответ объёмный (~366 дней с скан-проходом по 3811 событий) — используйте кеширование на клиенте.","operationId":"get_year_api_year__year__get","parameters":[{"name":"year","in":"path","required":true,"schema":{"type":"integer","maximum":2200,"minimum":1900,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/YearOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/quote/today":{"get":{"tags":["quote"],"summary":"Цитата дня (детерминированная)","description":"Возвращает одну библейскую цитату-эпиграф. Выбор детерминирован: одна и та же дата всегда даёт одну и ту же цитату. Это удобно для статической генерации (SSG).","operationId":"get_quote_today_api_quote_today_get","parameters":[{"name":"on_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"On Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/day/{target}/block":{"get":{"tags":["blocks"],"summary":"Блок «Сегодня» для виджета","description":"Группирует события дня по категориям как bg-orthocal-calendar-widget: память (types 0-3,5-7), средние (type 4), соборы (16), новомученики (17), святые (18), иконы (19), чтения (200-399). Технические типы (10,20,100) не включаются.","operationId":"get_day_block_api_day__target__block_get","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","format":"date","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DayBlockOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/upcoming":{"get":{"tags":["blocks"],"summary":"Блок «Грядущие праздники»","description":"Показывает большие и заметные праздники на выбранный диапазон: type 0-2 из Типикона. Группирует по месяцам. Поддерживает новый параметр range и старый months для совместимости.","operationId":"get_upcoming_api_blocks_upcoming_get","parameters":[{"name":"range","in":"query","required":false,"schema":{"enum":["week","month","half_year","year"],"type":"string","description":"Диапазон: week, month, half_year, year","default":"month","title":"Range"},"description":"Диапазон: week, month, half_year, year"},{"name":"months","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":12,"minimum":1},{"type":"null"}],"description":"Старый параметр совместимости: сколько месяцев смотреть вперёд","title":"Months"},"description":"Старый параметр совместимости: сколько месяцев смотреть вперёд"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpcomingBlockOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/saint/list":{"get":{"tags":["saints"],"summary":"Полный список святых для поиска","operationId":"list_saints_api_saint_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SaintListItemOut"},"type":"array","title":"Response List Saints Api Saint List Get"}}}}}}},"/api/saint/name-days":{"get":{"tags":["saints"],"summary":"Калькулятор именин и имени для крещения","operationId":"name_days_api_saint_name_days_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":80,"description":"Гражданское или церковное имя","title":"Name"},"description":"Гражданское или церковное имя"},{"name":"on_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Дата отсчета; если не передана, используется сегодня","title":"On Date"},"description":"Дата отсчета; если не передана, используется сегодня"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":1,"default":24,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NameDaySearchOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/saint/{saint_ref}":{"get":{"tags":["saints"],"summary":"Святой: профиль + тропари/кондаки/молитвы + даты памяти","operationId":"get_saint_api_saint__saint_ref__get","parameters":[{"name":"saint_ref","in":"path","required":true,"schema":{"type":"string","title":"Saint Ref"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaintOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/feast/list":{"get":{"tags":["feasts"],"summary":"Список больших праздников для навигации и sitemap","operationId":"list_feasts_api_feast_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FeastListItemOut"},"type":"array","title":"Response List Feasts Api Feast List Get"}}}}}}},"/api/feast/{feast_ref}":{"get":{"tags":["feasts"],"summary":"Большой праздник: икона, песнопения и материалы","operationId":"get_feast_api_feast__feast_ref__get","parameters":[{"name":"feast_ref","in":"path","required":true,"schema":{"type":"string","title":"Feast Ref"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeastOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search":{"get":{"tags":["search"],"summary":"Глобальный поиск по сайту","description":"Ищет по Библии, святым, праздникам, словарю церковных терминов и Тропариону.","operationId":"search_api_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":120,"description":"Поисковая строка","title":"Q"},"description":"Поисковая строка"},{"name":"section","in":"query","required":false,"schema":{"enum":["all","scripture","saint","feast","dictionary","troparion"],"type":"string","description":"Ограничить поиск разделом","default":"all","title":"Section"},"description":"Ограничить поиск разделом"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":80,"minimum":1,"description":"Максимум результатов","default":30,"title":"Limit"},"description":"Максимум результатов"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/prayerbook":{"get":{"tags":["prayerbook"],"summary":"Список текстов молитвослова","operationId":"list_prayerbook_items_api_prayerbook_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"enum":["morning","evening","akathist"],"type":"string"},{"type":"null"}],"description":"Фильтр по типу текста","title":"Kind"},"description":"Фильтр по типу текста"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}],"description":"Поиск по названию/адресату","title":"Q"},"description":"Поиск по названию/адресату"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":120,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PrayerbookItemBriefOut"},"title":"Response List Prayerbook Items Api Prayerbook Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/prayerbook/{slug}":{"get":{"tags":["prayerbook"],"summary":"Полный текст молитвы или акафиста","operationId":"get_prayerbook_item_api_prayerbook__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrayerbookItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/liturgical-instructions":{"get":{"tags":["liturgical-instructions"],"summary":"Список импортированных богослужебных указаний","operationId":"list_instructions_api_liturgical_instructions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/LiturgicalInstructionListItemOut"},"type":"array","title":"Response List Instructions Api Liturgical Instructions Get"}}}}}}},"/api/liturgical-instructions/{on_date}/neighbors":{"get":{"tags":["liturgical-instructions"],"summary":"Соседние даты богослужебных указаний","operationId":"instruction_neighbors_api_liturgical_instructions__on_date__neighbors_get","parameters":[{"name":"on_date","in":"path","required":true,"schema":{"type":"string","format":"date","title":"On Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiturgicalInstructionNeighborsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/liturgical-instructions/{on_date}":{"get":{"tags":["liturgical-instructions"],"summary":"Богослужебные указания на дату","operationId":"get_instruction_api_liturgical_instructions__on_date__get","parameters":[{"name":"on_date","in":"path","required":true,"schema":{"type":"string","format":"date","title":"On Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiturgicalInstructionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vk/consent/config":{"get":{"tags":["vk"],"summary":"Consent Config","operationId":"consent_config_api_vk_consent_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VkConsentConfigOut"}}}}}}},"/api/vk/consent/status":{"get":{"tags":["vk"],"summary":"Consent Status","operationId":"consent_status_api_vk_consent_status_get","parameters":[{"name":"vk_user_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":32,"title":"Vk User Id"}},{"name":"terms_version","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":32,"default":"2026-06-18","title":"Terms Version"}},{"name":"privacy_version","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":32,"default":"2026-06-18","title":"Privacy Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VkConsentStatusOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vk/consent":{"post":{"tags":["vk"],"summary":"Accept Consent","operationId":"accept_consent_api_vk_consent_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VkConsentIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VkConsentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vk/publish/preview/{target}":{"get":{"tags":["vk"],"summary":"Предпросмотр ежедневных VK-публикаций","description":"Собирает посты дня из календаря, чтений и зачал, но ничего не отправляет во VK. Используется для проверки расписания и текста перед включением реального publisher.","operationId":"preview_vk_publish_day_api_vk_publish_preview__target__get","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","format":"date","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VkPublishPreviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vk/publish/prepare/{target}":{"post":{"tags":["vk"],"summary":"Создать задания VK-публикаций за день","description":"Создает или обновляет pending/failed задания по данным preview. Опубликованные задания не трогает.","operationId":"prepare_vk_publish_day_api_vk_publish_prepare__target__post","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","format":"date","title":"Target"}},{"name":"x-vk-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vk-Admin-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VkPublishJobOut"},"title":"Response Prepare Vk Publish Day Api Vk Publish Prepare  Target  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vk/publish/jobs/{target}":{"get":{"tags":["vk"],"summary":"Список заданий VK-публикаций за день","operationId":"list_vk_publish_jobs_api_vk_publish_jobs__target__get","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","format":"date","title":"Target"}},{"name":"x-vk-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vk-Admin-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VkPublishJobOut"},"title":"Response List Vk Publish Jobs Api Vk Publish Jobs  Target  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vk/publish/run/{target}":{"post":{"tags":["vk"],"summary":"Запустить публикации за день","description":"По умолчанию работает в dry-run, если VK_DRY_RUN=true. Для реальной отправки нужны VK_PUBLISH_ENABLED=true, VK_DRY_RUN=false и VK_ACCESS_TOKEN.","operationId":"run_vk_publish_day_api_vk_publish_run__target__post","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","format":"date","title":"Target"}},{"name":"dry_run","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dry Run"}},{"name":"due_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Due Only"}},{"name":"x-vk-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vk-Admin-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VkPublishJobResultOut"},"title":"Response Run Vk Publish Day Api Vk Publish Run  Target  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vk/publish/job/{job_id}/publish":{"post":{"tags":["vk"],"summary":"Опубликовать одно VK-задание","operationId":"publish_vk_job_api_vk_publish_job__job_id__publish_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}},{"name":"dry_run","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dry Run"}},{"name":"x-vk-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vk-Admin-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VkPublishJobResultOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BibleChapterOut":{"properties":{"book_code":{"type":"string","title":"Book Code"},"book_title":{"type":"string","title":"Book Title"},"chapter":{"type":"integer","title":"Chapter"},"verses":{"items":{"$ref":"#/components/schemas/VerseOut"},"type":"array","title":"Verses"}},"type":"object","required":["book_code","book_title","chapter","verses"],"title":"BibleChapterOut","description":"Глава книги Писания."},"BookOut":{"properties":{"code":{"type":"string","title":"Code"},"title":{"type":"string","title":"Title"},"short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short"},"testament":{"type":"string","enum":["OT","NT"],"title":"Testament"},"ordinal":{"type":"integer","title":"Ordinal"},"chapters_count":{"type":"integer","title":"Chapters Count","description":"Сколько глав в книге"}},"type":"object","required":["code","title","short","testament","ordinal","chapters_count"],"title":"BookOut","description":"Книга Писания (метаданные, без текста)."},"DayBlockOut":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Дата по новому стилю"},"date_old_style":{"type":"string","format":"date","title":"Date Old Style","description":"Дата по старому стилю"},"weekday":{"type":"integer","maximum":6.0,"minimum":0.0,"title":"Weekday","description":"0=Вс … 6=Сб"},"sedmica":{"$ref":"#/components/schemas/SedmicaOut"},"properties":{"$ref":"#/components/schemas/DayPropertiesOut"},"memory":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Memory","description":"Память дня: праздники (type 0-3,5-7)"},"middle":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Middle","description":"Средние полиелейные (type 4) — с иконкой S4"},"hosts":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Hosts","description":"Соборы святых (type 16)"},"martyrs":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Martyrs","description":"Новомученики (type 17)"},"saints":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Saints","description":"Месяцеслов (type 18)"},"icons":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Icons","description":"Иконы Богородицы (type 19)"},"readings_refs":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Readings Refs","description":"Ссылки-зачала (type 200-399)"}},"type":"object","required":["date","date_old_style","weekday","sedmica","properties"],"title":"DayBlockOut","description":"Блок «Сегодня» — как bg-ortcal-widget на kseniya-hram.ru."},"DayOut":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Дата по новому (григорианскому) стилю"},"date_old_style":{"type":"string","format":"date","title":"Date Old Style","description":"Дата по старому (юлианскому) стилю"},"weekday":{"type":"integer","maximum":6.0,"minimum":0.0,"title":"Weekday","description":"0=Вс, 1=Пн … 6=Сб"},"sedmica":{"$ref":"#/components/schemas/SedmicaOut"},"properties":{"$ref":"#/components/schemas/DayPropertiesOut"},"events":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Events"},"saints":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Saints","description":"Памяти святых (type=18)"},"icons":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Icons","description":"Иконы Богородицы (type=19)"},"readings_refs":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Readings Refs","description":"Ссылки-зачала (type 200-399)"}},"type":"object","required":["date","date_old_style","weekday","sedmica","properties","events"],"title":"DayOut","description":"Полная информация о дне."},"DayPropertiesOut":{"properties":{"rank":{"type":"integer","maximum":7.0,"minimum":0.0,"title":"Rank","description":"0=Пасха, 1=двунадесятый, 2=великий, 3-6=средние/малые, 7=обычный"},"is_fast_day":{"type":"boolean","title":"Is Fast Day"},"is_sunday":{"type":"boolean","title":"Is Sunday"},"is_commemoration":{"type":"boolean","title":"Is Commemoration","description":"День поминовения усопших"}},"type":"object","required":["rank","is_fast_day","is_sunday","is_commemoration"],"title":"DayPropertiesOut"},"DayReadingsOut":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"matins":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Matins"},"apostles":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Apostles"},"gospels":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Gospels"},"psalter":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Psalter"},"vespers":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Vespers"},"psalter_matins":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Psalter Matins"},"psalter_liturgy":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Psalter Liturgy"},"psalter_vespers":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Psalter Vespers"},"psalter_hours":{"items":{"$ref":"#/components/schemas/ReadingOut"},"type":"array","title":"Psalter Hours"}},"type":"object","required":["date"],"title":"DayReadingsOut","description":"Чтения дня с разрешённым текстом Писания."},"EventOut":{"properties":{"name":{"type":"string","title":"Name","description":"Название события или ссылка-зачало для чтений"},"type":{"type":"integer","title":"Type","description":"Код типа из таксономии (см. docs/teardown §4)"},"link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"saint_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Saint Id","description":"ID записи в таблице saints (если есть)"},"saint_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saint Slug","description":"Человекочитаемый slug святого (если есть)"},"saint_icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saint Icon Url","description":"URL иконы святого из справочника saints"},"feast_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Feast Id","description":"ID записи в таблице feasts (если есть)"},"feast_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feast Slug","description":"Человекочитаемый slug праздника (если есть)"}},"type":"object","required":["name","type"],"title":"EventOut","description":"Одно событие дня (память святого, икона, праздник, чтение и т.д.)."},"FeastDateOut":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Дата по новому стилю"},"date_old_style":{"type":"string","format":"date","title":"Date Old Style","description":"Дата по старому стилю"}},"type":"object","required":["date","date_old_style"],"title":"FeastDateOut","description":"Одна дата памяти святого."},"FeastListItemOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"rank":{"type":"integer","title":"Rank"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","name","slug","rank"],"title":"FeastListItemOut","description":"Краткая запись большого праздника для навигации и sitemap."},"FeastMaterialOut":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"type":"string","title":"Title"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"url":{"type":"string","title":"Url"}},"type":"object","required":["id","title","url"],"title":"FeastMaterialOut","description":"Материал Азбуки, связанный с праздником."},"FeastOut":{"properties":{"id":{"type":"integer","title":"Id"},"event_id":{"type":"integer","title":"Event Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"rank":{"type":"integer","title":"Rank"},"link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"history_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"History Text"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"prayers":{"items":{"$ref":"#/components/schemas/FeastPrayerOut"},"type":"array","title":"Prayers"},"materials":{"items":{"$ref":"#/components/schemas/FeastMaterialOut"},"type":"array","title":"Materials"},"feast_dates":{"items":{"$ref":"#/components/schemas/FeastDateOut"},"type":"array","title":"Feast Dates"}},"type":"object","required":["id","event_id","name","slug","rank","prayers","materials","feast_dates"],"title":"FeastOut","description":"Страница большого праздника."},"FeastPrayerOut":{"properties":{"id":{"type":"integer","title":"Id"},"kind":{"type":"string","title":"Kind","description":"troparion | kontakion | magnification | zadostoynik | prayer"},"voice":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Voice","description":"Глас (1-8)"},"title":{"type":"string","title":"Title"},"text":{"type":"string","title":"Text"}},"type":"object","required":["id","kind","title","text"],"title":"FeastPrayerOut","description":"Тропарь, кондак, величание или иной богослужебный текст праздника."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LiturgicalInstructionListItemOut":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"fetched_at":{"type":"string","title":"Fetched At"}},"type":"object","required":["date","fetched_at"],"title":"LiturgicalInstructionListItemOut","description":"Дата указаний для sitemap и административной проверки."},"LiturgicalInstructionNeighborsOut":{"properties":{"previous_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Previous Date"},"next_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Next Date"}},"type":"object","title":"LiturgicalInstructionNeighborsOut","description":"Ближайшие импортированные даты до и после выбранной."},"LiturgicalInstructionOut":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"title":{"type":"string","title":"Title"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excerpt"},"content_html":{"type":"string","title":"Content Html"},"source_url":{"type":"string","title":"Source Url"},"fetched_at":{"type":"string","title":"Fetched At"}},"type":"object","required":["date","title","content_html","source_url","fetched_at"],"title":"LiturgicalInstructionOut","description":"Полный текст официальных богослужебных указаний на дату."},"MonthDayBrief":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"rank":{"type":"integer","title":"Rank"},"is_fast_day":{"type":"boolean","title":"Is Fast Day"},"is_sunday":{"type":"boolean","title":"Is Sunday"},"primary_event_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Primary Event Type","description":"Тип главного события дня, если есть"},"primary_event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Event","description":"Главное событие дня (для подписи в сетке)"},"fast_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fast Label","description":"Название поста или постного правила для tooltip"},"major_events":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Major Events","description":"Большие праздники дня (type 0-2) для годовой сетки"}},"type":"object","required":["date","rank","is_fast_day","is_sunday"],"title":"MonthDayBrief","description":"Краткая инфа дня для сетки месяца/года."},"MonthOut":{"properties":{"year":{"type":"integer","title":"Year"},"month":{"type":"integer","maximum":12.0,"minimum":1.0,"title":"Month"},"days":{"items":{"$ref":"#/components/schemas/MonthDayBrief"},"type":"array","title":"Days"}},"type":"object","required":["year","month","days"],"title":"MonthOut"},"NameDayCandidateOut":{"properties":{"saint":{"$ref":"#/components/schemas/SaintListItemOut"},"feast_dates":{"items":{"$ref":"#/components/schemas/FeastDateOut"},"type":"array","title":"Feast Dates"},"nearest_date":{"type":"string","format":"date","title":"Nearest Date"},"nearest_date_old_style":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nearest Date Old Style"},"days_until":{"type":"integer","title":"Days Until"},"match_label":{"type":"string","title":"Match Label"},"score":{"type":"number","title":"Score"},"is_best":{"type":"boolean","title":"Is Best","default":false},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excerpt"}},"type":"object","required":["saint","feast_dates","nearest_date","days_until","match_label","score"],"title":"NameDayCandidateOut","description":"Кандидат для подбора имени и именин."},"NameDaySearchOut":{"properties":{"query":{"type":"string","title":"Query"},"date":{"type":"string","format":"date","title":"Date"},"church_names":{"items":{"type":"string"},"type":"array","title":"Church Names"},"results":{"items":{"$ref":"#/components/schemas/NameDayCandidateOut"},"type":"array","title":"Results"}},"type":"object","required":["query","date","church_names","results"],"title":"NameDaySearchOut","description":"Результат калькулятора именин."},"ParallelRef":{"properties":{"book_code":{"type":"string","title":"Book Code"},"chapter":{"type":"integer","title":"Chapter"},"from_verse":{"type":"integer","title":"From Verse"},"to_verse":{"type":"integer","title":"To Verse"}},"type":"object","required":["book_code","chapter","from_verse","to_verse"],"title":"ParallelRef","description":"Одно параллельное место к стиху."},"PrayerbookItemBriefOut":{"properties":{"id":{"type":"integer","title":"Id"},"kind":{"type":"string","enum":["morning","evening","akathist"],"title":"Kind"},"title":{"type":"string","title":"Title"},"slug":{"type":"string","title":"Slug"},"target_type":{"type":"string","title":"Target Type"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"saint_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Saint Id"},"saint_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saint Slug"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excerpt"}},"type":"object","required":["id","kind","title","slug","target_type"],"title":"PrayerbookItemBriefOut","description":"Карточка молитвослова без полного текста."},"PrayerbookItemOut":{"properties":{"id":{"type":"integer","title":"Id"},"kind":{"type":"string","enum":["morning","evening","akathist"],"title":"Kind"},"title":{"type":"string","title":"Title"},"slug":{"type":"string","title":"Slug"},"target_type":{"type":"string","title":"Target Type"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"saint_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Saint Id"},"saint_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saint Slug"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excerpt"},"text_html":{"type":"string","title":"Text Html"}},"type":"object","required":["id","kind","title","slug","target_type","text_html"],"title":"PrayerbookItemOut","description":"Полный текст молитвы или акафиста."},"QuoteOut":{"properties":{"reference":{"type":"string","title":"Reference"},"verses":{"items":{"$ref":"#/components/schemas/VerseOut"},"type":"array","title":"Verses"}},"type":"object","required":["reference","verses"],"title":"QuoteOut","description":"Цитата-эпиграф: ссылка + текст."},"ReadingOut":{"properties":{"kind":{"type":"string","enum":["apostle","gospel","psalter","matins","vespers"],"title":"Kind","description":"Вид чтения"},"reference":{"type":"string","title":"Reference","description":"Исходная ссылка-зачало, как в БД"},"zachalo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zachalo","description":"Номер богослужебного зачала, если найден"},"verses":{"items":{"$ref":"#/components/schemas/VerseOut"},"type":"array","title":"Verses"}},"type":"object","required":["kind","reference"],"title":"ReadingOut","description":"Одно чтение: ссылка и её разрешённый текст."},"SaintListItemOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"sort_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort Name"},"saint_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saint Type"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"}},"type":"object","required":["id","name"],"title":"SaintListItemOut","description":"Краткая запись святого для списка и поиска."},"SaintOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"sort_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort Name"},"saint_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saint Type"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"life_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Life Text"},"prayers":{"items":{"$ref":"#/components/schemas/SaintPrayerOut"},"type":"array","title":"Prayers"},"feast_dates":{"items":{"$ref":"#/components/schemas/FeastDateOut"},"type":"array","title":"Feast Dates"}},"type":"object","required":["id","name","prayers","feast_dates"],"title":"SaintOut","description":"Страница святого: профиль + молитвы + даты памяти."},"SaintPrayerOut":{"properties":{"id":{"type":"integer","title":"Id"},"kind":{"type":"string","title":"Kind","description":"troparion | kontakion | prayer | magnification"},"voice":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Voice","description":"Глас (1-8)"},"title":{"type":"string","title":"Title"},"text":{"type":"string","title":"Text"}},"type":"object","required":["id","kind","title","text"],"title":"SaintPrayerOut","description":"Тропарь, кондак, молитва или величание святому."},"SearchOut":{"properties":{"query":{"type":"string","title":"Query"},"results":{"items":{"$ref":"#/components/schemas/SearchResultOut"},"type":"array","title":"Results"}},"type":"object","required":["query","results"],"title":"SearchOut","description":"Глобальный поиск по Библии, святым, праздникам и справочным разделам."},"SearchResultOut":{"properties":{"type":{"type":"string","enum":["scripture","saint","feast","dictionary","troparion"],"title":"Type","description":"Раздел сайта, в котором найден результат"},"title":{"type":"string","title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excerpt"},"url":{"type":"string","title":"Url"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference"},"meta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta"}},"type":"object","required":["type","title","url"],"title":"SearchResultOut","description":"Один результат глобального поиска по сайту."},"SedmicaOut":{"properties":{"kind":{"type":"string","title":"Kind","description":"Машинно-читаемый код периода (great_lent, pascha, ...)"},"name":{"type":"string","title":"Name","description":"Человекочитаемое название"},"number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number"},"is_sunday":{"type":"boolean","title":"Is Sunday"}},"type":"object","required":["kind","name","is_sunday"],"title":"SedmicaOut"},"UpcomingBlockOut":{"properties":{"months":{"items":{"$ref":"#/components/schemas/UpcomingMonthBlock"},"type":"array","title":"Months"}},"type":"object","required":["months"],"title":"UpcomingBlockOut","description":"Блок «Грядущие праздники» — события на N месяцев вперёд."},"UpcomingEvent":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"date_old_style":{"type":"string","format":"date","title":"Date Old Style"},"rank":{"type":"integer","maximum":7.0,"minimum":0.0,"title":"Rank"},"events":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Events"}},"type":"object","required":["date","date_old_style","rank","events"],"title":"UpcomingEvent","description":"Один день с событиями в блоке «Грядущие»."},"UpcomingMonthBlock":{"properties":{"year":{"type":"integer","title":"Year"},"month":{"type":"integer","maximum":12.0,"minimum":1.0,"title":"Month"},"events":{"items":{"$ref":"#/components/schemas/UpcomingEvent"},"type":"array","title":"Events"}},"type":"object","required":["year","month","events"],"title":"UpcomingMonthBlock","description":"Один месяц в блоке «Грядущие»."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerseOut":{"properties":{"book_code":{"type":"string","title":"Book Code","description":"Канонический код книги ('Jn', 'Ps', '1Cor')"},"chapter":{"type":"integer","title":"Chapter"},"verse":{"type":"integer","title":"Verse","description":"0 — надписание псалма"},"text":{"type":"string","title":"Text","description":"Текст стиха; содержит HTML-сущности ударений (&#769;)"},"text_cs":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Cs","description":"Церковнославянский текст (azbyka.ru)"},"parallels":{"items":{"$ref":"#/components/schemas/ParallelRef"},"type":"array","title":"Parallels","description":"Параллельные места"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["book_code","chapter","verse","text"],"title":"VerseOut","description":"Один стих Священного Писания."},"VkConsentConfigOut":{"properties":{"terms_version":{"type":"string","title":"Terms Version"},"privacy_version":{"type":"string","title":"Privacy Version"},"terms_url":{"type":"string","title":"Terms Url"},"privacy_url":{"type":"string","title":"Privacy Url"}},"type":"object","required":["terms_version","privacy_version","terms_url","privacy_url"],"title":"VkConsentConfigOut","description":"Текущие версии документов для акцепта в VK Mini App."},"VkConsentIn":{"properties":{"vk_user_id":{"type":"string","maxLength":32,"minLength":1,"title":"Vk User Id"},"vk_app_id":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Vk App Id"},"vk_platform":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Vk Platform"},"terms_version":{"type":"string","maxLength":32,"minLength":1,"title":"Terms Version"},"privacy_version":{"type":"string","maxLength":32,"minLength":1,"title":"Privacy Version"},"launch_params":{"additionalProperties":{"type":"string"},"type":"object","title":"Launch Params"}},"type":"object","required":["vk_user_id","terms_version","privacy_version"],"title":"VkConsentIn","description":"Запись согласия пользователя VK Mini App с документами."},"VkConsentOut":{"properties":{"accepted":{"type":"boolean","title":"Accepted"},"terms_version":{"type":"string","title":"Terms Version"},"privacy_version":{"type":"string","title":"Privacy Version"},"accepted_at":{"type":"string","title":"Accepted At"}},"type":"object","required":["accepted","terms_version","privacy_version","accepted_at"],"title":"VkConsentOut","description":"Результат сохранения акцепта документов."},"VkConsentStatusOut":{"properties":{"accepted":{"type":"boolean","title":"Accepted"},"terms_version":{"type":"string","title":"Terms Version"},"privacy_version":{"type":"string","title":"Privacy Version"},"accepted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accepted At"}},"type":"object","required":["accepted","terms_version","privacy_version"],"title":"VkConsentStatusOut","description":"Есть ли уже акцепт текущих документов у VK-пользователя."},"VkPublishJobOut":{"properties":{"id":{"type":"integer","title":"Id"},"target_date":{"type":"string","title":"Target Date"},"kind":{"type":"string","title":"Kind"},"dedupe_key":{"type":"string","title":"Dedupe Key"},"scheduled_at":{"type":"string","title":"Scheduled At"},"status":{"type":"string","title":"Status"},"vk_post_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vk Post Id"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"attempts":{"type":"integer","title":"Attempts","default":0},"next_attempt_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Attempt At"}},"type":"object","required":["id","target_date","kind","dedupe_key","scheduled_at","status","payload"],"title":"VkPublishJobOut","description":"Одно задание VK-публикации из очереди."},"VkPublishJobResultOut":{"properties":{"id":{"type":"integer","title":"Id"},"kind":{"type":"string","title":"Kind"},"dedupe_key":{"type":"string","title":"Dedupe Key"},"status":{"type":"string","title":"Status"},"dry_run":{"type":"boolean","title":"Dry Run"},"vk_post_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vk Post Id"},"message":{"type":"string","title":"Message"},"attachments":{"items":{"type":"string"},"type":"array","title":"Attachments"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["id","kind","dedupe_key","status","dry_run","message","attachments"],"title":"VkPublishJobResultOut","description":"Результат попытки публикации одного задания."},"VkPublishPostPreviewOut":{"properties":{"kind":{"type":"string","title":"Kind","description":"Тип публикации: day_summary, scripture_gospel и т.п."},"publish_target":{"type":"string","title":"Publish Target","description":"Куда пойдет публикация: wall или story","default":"wall"},"title":{"type":"string","title":"Title","description":"Короткий заголовок для админского предпросмотра"},"scheduled_at":{"type":"string","title":"Scheduled At","description":"Локальное время публикации ISO-like"},"dedupe_key":{"type":"string","title":"Dedupe Key","description":"Идемпотентный ключ публикации за дату и тип"},"text":{"type":"string","title":"Text","description":"Текст, который будет опубликован на стене VK"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"Основная ссылка поста на сайт"},"image_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Kind","description":"Шаблон будущей картинки-обложки"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url","description":"URL сгенерированной картинки, если уже есть"},"story_link_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Story Link Url","description":"Внутренняя VK-ссылка для story, если задана"},"attachments":{"items":{"type":"string"},"type":"array","title":"Attachments","description":"Будущие VK attachments"}},"type":"object","required":["kind","title","scheduled_at","dedupe_key","text"],"title":"VkPublishPostPreviewOut","description":"Один будущий пост VK в режиме предпросмотра, без отправки во VK."},"VkPublishPreviewOut":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"group_id":{"type":"string","title":"Group Id"},"group_screen_name":{"type":"string","title":"Group Screen Name"},"dry_run":{"type":"boolean","title":"Dry Run"},"posts":{"items":{"$ref":"#/components/schemas/VkPublishPostPreviewOut"},"type":"array","title":"Posts"}},"type":"object","required":["date","group_id","group_screen_name","dry_run","posts"],"title":"VkPublishPreviewOut","description":"Предпросмотр ежедневных VK-публикаций по календарному дню."},"YearOut":{"properties":{"year":{"type":"integer","title":"Year"},"pascha":{"type":"string","format":"date","title":"Pascha","description":"Дата Пасхи (нов.ст.)"},"months":{"items":{"$ref":"#/components/schemas/MonthOut"},"type":"array","title":"Months"}},"type":"object","required":["year","pascha","months"],"title":"YearOut"}}},"tags":[{"name":"day","description":"Информация о конкретном дне: события, чтения, свойства. Основной поток данных для главной ленты сайта."},{"name":"bible","description":"Священное Писание: список книг, главы целиком, поиск по ссылке-зачалу."},{"name":"calendar-grid","description":"Сетки месяца и года для построения календарной навигации. Объёмные ответы — для статической генерации Astro."},{"name":"quote","description":"Цитата дня (детерминированный выбор из 255 эпиграфов)."},{"name":"blocks","description":"Блоки «Сегодня» и «Грядущие праздники» для виджетов на сайте (аналог bg-orthocal-calendar-widget)."},{"name":"feasts","description":"Страницы больших праздников: иконы, песнопения и материалы."},{"name":"search","description":"Глобальный поиск по Писанию, святым, праздникам и молитвам."},{"name":"prayerbook","description":"Молитвослов: утренние, вечерние молитвы и акафисты."},{"name":"liturgical-instructions","description":"Официальные ежедневные богослужебные указания Патриархия.ru."},{"name":"system","description":"Системные эндпоинты: healthcheck для docker-compose."},{"name":"vk","description":"VK Mini App: версии документов, акцепт пользовательского согласия и dry-run ежедневных публикаций в группу."}]}