package ru.mcs.metadatabook.entity;
/**
* Уровни доступа API-ключа. Порядок enum-значений имеет значение — используется
* для сравнения "достаточно ли прав" через ordinal() в ApiKeyService.
* Не переставляйте существующие константы местами, только дописывайте новые в конец.
*/
public enum ApiKeyScope {
/** Только чтение через /api/v1/public/*. Используется внутренним ключом сайта,
* rate-limited по IP. Никогда не выдаётся напрямую внешним разработчикам как "их личный". */
PUBLIC_READ,
/** Создание карточек (POST /books) и обогащение (/api/v1/enrichment/public/*).
* Для доверенных партнёров/скриптов, выдаётся вручную администратором. */
PARTNER_WRITE,
/** Полный доступ: /api/metadata/**, модерация LLM-предложений, служебные операции. */
ADMIN
// Задел на будущее (см. обсуждение п.5 про полный экспорт БД для зеркалирования):
// MIRROR_SYNC - отдельный tier для батч-выгрузки всей базы, когда появится эта фича.
// Сознательно не добавляем сейчас, чтобы не плодить неиспользуемый код,
// но порядок enum это учитывает - новую константу можно дописать в конец
// без пересмотра существующих сравнений ordinal().
}