variable "pm_api_url" {
  description = "Proxmox API URL"
  type        = string
  default     = "https://192.168.7.33:8006/api2/json"
}

variable "pm_api_token_id" {
  description = "Proxmox API token ID"
  type        = string
  default     = "root@pam!terraform"
}

variable "pm_api_token_secret" {
  description = "Proxmox API token secret"
  type        = string
  sensitive   = true
}

variable "node" {
  description = "Target PVE node"
  type        = string
  default     = "mk33"
}

# ── Batch / Dynamic Parameters ───────────────────────────────

variable "vmid_base" {
  description = "Starting VMID for the first LXC"
  type        = number
  default     = 5050
}

variable "lxc_count" {
  description = "Number of LXCs to create"
  type        = number
  default     = 1
}

variable "subnet_prefix" {
  description = "First two octets of IPv4 (e.g. 192.168)"
  type        = string
  default     = "192.168"
}

variable "name_prefix" {
  description = "Hostname prefix for LXCs"
  type        = string
  default     = "lxc"
}

# ── Static Per-LXC Parameters (fixed for POC) ────────────────

variable "cores" {
  description = "CPU cores per LXC"
  type        = number
  default     = 2
}

variable "memory" {
  description = "RAM in MB per LXC"
  type        = number
  default     = 2048
}

variable "storage" {
  description = "Storage pool"
  type        = string
  default     = "local"
}

variable "rootfs_size" {
  description = "Root filesystem size in GB"
  type        = number
  default     = 8
}

variable "gateway" {
  description = "IPv4 gateway"
  type        = string
  default     = "192.168.18.1"
}

variable "dns_servers" {
  description = "DNS servers"
  type        = list(string)
  default     = ["192.168.7.7", "192.168.18.1", "1.1.1.1"]
}

variable "ssh_key_path" {
  description = "Path to SSH public key for jarvis user"
  type        = string
  default     = "artemis_key.pub"
}

variable "template_file_id" {
  description = "LXC OS template file ID (storage:path)"
  type        = string
  default     = "nas-ct-stor:vztmpl/debian-12-standard_12.12-1_amd64.tar.zst"
}

variable "password" {
  description = "Root password for console login"
  type        = string
  sensitive   = true
  default     = ""
}

variable "tags" {
  description = "Base tags for all LXCs"
  type        = list(string)
  default     = ["terraform", "batch"]
}

variable "unprivileged" {
  description = "Run as unprivileged container"
  type        = bool
  default     = false
}

variable "devices" {
  description = "Device passthrough configs for LXC"
  type = list(object({
    path       = string
    mode       = optional(string, "0666")
    uid        = optional(number, 0)
    gid        = optional(number, 0)
    deny_write = optional(bool, false)
  }))
  default = []
}
