resource "google_sql_database_instance" "main" {
  name             = "${local.name_prefix}-postgres"
  database_version = "POSTGRES_16"
  region           = var.gcp_region

  settings {
    tier              = "db-custom-2-8192"
    availability_type = "REGIONAL"
    disk_type         = "PD_SSD"
    disk_size         = 100
    disk_autoresize   = true

    ip_configuration {
      ipv4_enabled    = false
      private_network = google_compute_network.main.id
    }

    backup_configuration {
      enabled                        = true
      point_in_time_recovery_enabled = true
      start_time                     = "03:00"
    }

    database_flags {
      name  = "max_connections"
      value = "500"
    }
  }

  deletion_protection = var.environment == "production"
}

resource "google_sql_database" "cuppa" {
  name     = "cuppa"
  instance = google_sql_database_instance.main.name
}

resource "google_sql_user" "admin" {
  name     = "cuppa_admin"
  instance = google_sql_database_instance.main.name
  password = var.db_password
}
