variable "database_name" {
  type        = string
  description = "The name of the database (must be upper-case)."
  default     = "ROYALTY_ACCOUNTING"
}

variable "read_role_name" {
  description = "The name of the read only database role."
  default     = "ROYALTYACCOUNTING_DB_READONLY"
}

variable "read_write_role_name" {
  description = "The name of the read write database role."
  default     = "ROYALTYACCOUNTING_DB_READWRITE"
}

variable "db_data_retention_time_in_days" {
  default = 1
}

variable "schemas" {
  type = list(object({
    name                 = string
    data_retention_days  = optional(number, 1)
    is_managed           = optional(bool, true)
    read_role_name       = optional(string)
    read_write_role_name = optional(string)
  }))
  description = "A list of schemas to create in the database"
  default = [
    {
      name                 = "DEV",
      is_managed           = false,
      read_role_name       = "ROYALTYACCOUNTING_DB_DEV_SCHEMA_READ",
      read_write_role_name = "ROYALTYACCOUNTING_DB_DEV_SCHEMA_READWRITE"
    },
    {
      name                 = "QA",
      is_managed           = false,
      read_role_name       = "ROYALTYACCOUNTING_DB_QA_SCHEMA_READ",
      read_write_role_name = "ROYALTYACCOUNTING_DB_QA_SCHEMA_READWRITE"
    },
    {
      name                 = "UAT",
      is_managed           = false,
      read_role_name       = "ROYALTYACCOUNTING_DB_UAT_SCHEMA_READ",
      read_write_role_name = "ROYALTYACCOUNTING_DB_UAT_SCHEMA_READWRITE"
    },
    {
      name                 = "PROD",
      data_retention_days  = 30
      is_managed           = false,
      read_role_name       = "ROYALTYACCOUNTING_DB_PROD_SCHEMA_READ",
      read_write_role_name = "ROYALTYACCOUNTING_DB_PROD_SCHEMA_READWRITE"
    },
  ]
}
