//! Default configuration values and fixed column lists for the Horizon SDK.

/// Top-level columns that `DataRow` requires when serializing to Arrow.
///
/// Mirrors the fields declared in `DataRow::arrow_schema` so a catalog whose
/// schema does not contain them fails at discovery time instead of on first
/// write. Nested paths (e.g. `vector.element`) are intentionally omitted —
/// `FieldIdMap::validate_columns` only checks top-level columns.
pub const DATA_ROW_EXPECTED_COLUMNS: &[&str] = &[
    "created_datetime",
    "data_stream_id",
    "data_type",
    "datetime",
    "modified_datetime",
    "specification_id",
    "vector",
    "vector_end_bound",
    "vector_start_bound",
];
/// Default Kafka bootstrap servers.
pub const DEFAULT_BOOTSTRAP_SERVERS: &str = "localhost:9092";
/// Default Iceberg REST catalog URI.
pub const DEFAULT_CATALOG_URI: &str = "http://localhost:8181";
/// Default Kafka compression type.
pub const DEFAULT_COMPRESSION_TYPE: &str = "lz4";
/// Default coverage service timeout in seconds.
pub const DEFAULT_COVERAGE_TIMEOUT_SECS: u64 = 30;
/// Default Iceberg data row table name.
pub const DEFAULT_DATA_ROW_TABLE: &str = "horizon.data_row";
/// Default Kafka data row topic name.
pub const DEFAULT_DATA_ROW_TOPIC: &str = "horizon.data_row";
/// Default per-message delivery timeout (seconds) for `KafkaProducer::produce`.
pub const DEFAULT_KAFKA_PRODUCE_TIMEOUT_SECS: u64 = 10;
/// Default Iceberg metadata row table name.
pub const DEFAULT_METADATA_ROW_TABLE: &str = "horizon.metadata_row";
/// Default Kafka metadata row topic name.
pub const DEFAULT_METADATA_ROW_TOPIC: &str = "horizon.metadata_row";
/// Default Kafka SASL mechanism.
pub const DEFAULT_SASL_MECHANISM: &str = "SCRAM-SHA-256";
/// Default Kafka security protocol.
pub const DEFAULT_SECURITY_PROTOCOL: &str = "SASL_SSL";
/// Default `PostgreSQL` SSL mode.
pub const DEFAULT_SSLMODE: &str = "require";
/// Top-level columns that `MetadataRow` requires when serializing to Arrow.
///
/// Mirrors the fields declared in `MetadataRow::arrow_schema`.
pub const METADATA_ROW_EXPECTED_COLUMNS: &[&str] = &[
    "altitude",
    "created_datetime",
    "data_stream_id",
    "datetime",
    "heading",
    "latitude",
    "longitude",
    "modified_datetime",
    "pitch",
    "roll",
    "speed",
    "speed_over_ground",
];
