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

variable "database_folder" {
  description = "The path to the database folder"
  type        = string
}

variable "backup_folder" {
  description = "The path to the backup folder"
  type        = string
}

variable "backup_retention_days" {
  description = "The number of days to retain backups"
  type        = number
}

variable "backup_cron_schedule" {
  description = "The cron schedule for backups"
  type        = string
}

variable "db_root_password" {
  description = "The root password for the MySQL database"
  type        = string
  sensitive   = true
}

variable "tag" {
  description = "The version of the websites to install"
  type        = string
  default     = "1.23.4"
}

variable "fqdn" {
  description = "The fully qualified domain name for the Rustdesk server"
  type        = string
}


variable "tls_enabled" {
  description = "Enable TLS for the SFTPGo server"
  type        = bool
  default     = true
}

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

variable "app_config" {
  description = "The configuration for the SFTPGo server"
  type = object({
    app_name                         = string
    domain                           = string
    lfs_jwt_secret                   = string
    db_passwd                        = string
    jwt_secret                       = string
    mail_from                        = string
    no_reply_address                 = string
    smtp_user                        = string
    smtp_passwd                      = string
    smtp_host                        = string
    secret_key                       = string
    internal_token                   = string
    disable_registration             = optional(bool, true)
    require_signin_view              = optional(bool, false)
    register_email_confirm           = optional(bool, false)
    enable_notify_mail               = optional(bool, true)
    allow_only_external_registration = optional(bool, false)
    enable_captcha                   = optional(bool, true)
    run_mode                         = optional(string, "prod")
    http_port                        = optional(string, "3000")
    disable_ssh                      = optional(bool, false)
    ssh_port                         = optional(number, 22)
    db_host                          = optional(string, "mariadb")
    db_port                          = optional(string, "3306")
    db_name                          = optional(string, "gitea")
    db_user                          = optional(string, "gitea")
    smtp_protocol                    = optional(string, "SMTPS")
    smtp_port                        = optional(string, "587")
  })
}
