###############################################################################
# Greenfield MDP — Production Environment Variables
###############################################################################

# --- Subscription & Account ---

variable "subscription_id" {
  description = "Azure subscription ID for production"
  type        = string
}

variable "databricks_account_id" {
  description = "Databricks account ID (UUID from account console)"
  type        = string
}

variable "location" {
  description = "Primary Azure region"
  type        = string
  default     = "canadacentral"
}

variable "environment" {
  description = "Environment name"
  type        = string
  default     = "prod"
}

variable "project" {
  description = "Project name for tagging"
  type        = string
  default     = "mdp"
}

# --- Networking ---

variable "vnet_cidr" {
  description = "CIDR for the main MDP VNet"
  type        = string
  default     = "10.100.0.0/16"
}

variable "dbx_host_subnet_cidr" {
  description = "CIDR for Databricks host subnet"
  type        = string
  default     = "10.100.1.0/24"
}

variable "dbx_container_subnet_cidr" {
  description = "CIDR for Databricks container subnet"
  type        = string
  default     = "10.100.2.0/24"
}

variable "private_endpoints_subnet_cidr" {
  description = "CIDR for private endpoints subnet"
  type        = string
  default     = "10.100.3.0/24"
}

variable "transit_vnet_cidr" {
  description = "CIDR for transit VNet (front-end Private Link)"
  type        = string
  default     = "10.101.0.0/24"
}

variable "transit_subnet_cidr" {
  description = "CIDR for transit subnet within transit VNet"
  type        = string
  default     = "10.101.0.0/26"
}

variable "hub_vnet_id" {
  description = "Resource ID of Greenfield hub VNet for peering (empty string to skip)"
  type        = string
  default     = ""
}

variable "corporate_ip_ranges" {
  description = "Greenfield corporate IP ranges for IP access lists"
  type        = list(string)
  default     = []
}

# --- ADLS Storage ---

variable "adls_replication_type" {
  description = "Storage replication type (GRS for prod, LRS for devtest)"
  type        = string
  default     = "GRS"
}

# --- Unity Catalog ---

variable "uc_catalog_names" {
  description = "List of catalogs to create in Unity Catalog"
  type        = list(string)
  default     = ["raw", "curated", "analytics", "sandbox"]
}

variable "uc_schemas" {
  description = "Map of catalog name to list of schemas"
  type        = map(list(string))
  default = {
    raw       = ["customer", "transactions", "products", "claims", "policies"]
    curated   = ["customer", "transactions", "products", "claims", "policies"]
    analytics = ["dimensional", "metrics", "reference", "customer360"]
    sandbox   = []
  }
}

# --- Tags ---

variable "tags" {
  description = "Default tags applied to all resources"
  type        = map(string)
  default     = {}
}
