"""Shared constants for intermine314 runtime defaults."""

DEFAULT_PARALLEL_WORKERS = 16
DEFAULT_PARALLEL_PAGE_SIZE = 1000
DEFAULT_BATCH_SIZE = 5000
DEFAULT_KEYSET_BATCH_SIZE = 2000
DEFAULT_KEYSET_AUTO_MIN_SIZE = 50_000
DEFAULT_PARALLEL_MAX_BUFFERED_ROWS = 100_000

DEFAULT_QUERY_THREAD_NAME_PREFIX = "intermine314-query"
DEFAULT_EXPORT_BATCH_SIZE = 10_000

DEFAULT_LIST_CHUNK_SIZE = 10_000
DEFAULT_LIST_ENTRIES_BATCH_SIZE = DEFAULT_BATCH_SIZE
DEFAULT_TARGETED_EXPORT_PAGE_SIZE = 5_000
DEFAULT_TARGETED_LIST_NAME_PREFIX = "intermine314_targeted_chunk"
DEFAULT_TARGETED_LIST_DESCRIPTION = "Temporary chunk list for targeted benchmark export"
DEFAULT_TARGETED_LIST_TAGS = ("intermine314", "benchmark", "targeted")
DEFAULT_REQUEST_TIMEOUT_SECONDS = 60
DEFAULT_ID_RESOLUTION_MAX_BACKOFF_SECONDS = 60

# Production profile tiers used by mine-aware fetch defaults.
DEFAULT_WORKERS_TIER = 4
SERVER_LIMITED_WORKERS_TIER = 8
FULL_WORKERS_TIER = 16
DEFAULT_PRODUCTION_PROFILE_SWITCH_ROWS = 50_000

PRODUCTION_WORKFLOW_ELT = "elt"
PRODUCTION_WORKFLOW_ETL = "etl"
PRODUCTION_WORKFLOWS = (PRODUCTION_WORKFLOW_ELT, PRODUCTION_WORKFLOW_ETL)

PRODUCTION_PROFILE_ELT_DEFAULT = "elt_default_w4"
PRODUCTION_PROFILE_ELT_SERVER_LIMITED = "elt_server_limited_w8"
PRODUCTION_PROFILE_ELT_FULL = "elt_full_w16"
PRODUCTION_PROFILE_ETL_DEFAULT = "etl_default_w4"
PRODUCTION_PROFILE_ETL_SERVER_LIMITED = "etl_server_limited_w8"
PRODUCTION_PROFILE_ETL_FULL = "etl_full_w16"
