variable "persistent_folder" {
  description = "The path to the persistent folder"
  type        = string
}

variable "primary_domain" {
  description = "The primary domain for the websites"
  type        = string
}

variable "email_accounts" {
  description = "List of email accounts to be created"
  type = list(object({
    recipient    = string
    domain       = string
    username     = string
    password     = string
    delete_after = optional(number)
    mailboxes    = list(string)
    receive = object({
      server = string
      port   = number
    })
  }))
}

variable "relay_smtp_host" {
  description = "The SMTP relay host"
  type        = string
}

variable "relay_smtp_port" {
  description = "The SMTP relay port"
  type        = number
}

variable "relay_smtp_username" {
  description = "The SMTP relay username"
  type        = string
  sensitive   = true
}

variable "relay_smtp_password" {
  description = "The SMTP relay password"
  type        = string
  sensitive   = true
}

variable "fetch_emails_schedule" {
  description = "The cron schedule for fetching emails"
  type        = string
}

variable "getmail_tag" {
  description = "The version of getmail to install"
  type        = string
  default     = "v0.0.1-6.19.07"
}

variable "postfix_tag" {
  description = "The version of postfix to install"
  type        = string
  default     = "alpine-316"
}

variable "dovecot_tag" {
  description = "The version of dovecot to install"
  type        = string
  default     = "latest"
}

variable "mail_crypt_private_key" {
  description = "The private key for mail encryption"
  type        = string
  sensitive   = true
}

variable "mail_crypt_public_key" {
  description = "The public key for mail encryption"
  type        = string
  sensitive   = true
}

variable "issuer" {
  description = "The issuer for the internal certificate"
  type        = string
  default     = "internal-ca"
}

variable "ca_pem" {
  description = "The CA PEM certificate"
  type        = string
  sensitive   = true
}
