variable "vmid" {
  description = "LXC VMID"
  type        = number
}

variable "hostname" {
  description = "LXC hostname"
  type        = string
}

variable "ipv4" {
  description = "Static IPv4 with CIDR"
  type        = string
}

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

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

variable "memory" {
  description = "RAM in MB"
  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 = "Tags to apply to the LXC"
  type        = list(string)
  default     = ["terraform", "batch"]
}

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

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