resource "postgresql_role" "workflowdb_admin" {
  name            = "workflowdb_admin"
  login           = true
  create_database = true
  create_role     = true

  roles = [
    "rds_superuser",
    postgresql_role.workflowdb_owner.name,
  ]
}

resource "postgresql_role" "workflowdb_owner" {
  name            = "workflowdb_owner"
  login           = true
  create_database = true
  create_role     = false

  roles = [
    postgresql_role.workflowdb_user.name,
    postgresql_role.workflowdb_reader.name,
  ]
}

resource "postgresql_role" "workflowdb_user_iam" {
  name  = "workflowdb_user_iam"
  login = true

  roles = [
    "rds_iam",
    postgresql_role.workflowdb_user.name,
  ]
}

resource "postgresql_role" "workflowdb_user" {
  name  = "workflowdb_user"
  login = true
}

resource "postgresql_role" "workflowdb_reader_iam" {
  name  = "workflowdb_reader_iam"
  login = true

  roles = [
    "rds_iam",
    postgresql_role.workflowdb_reader.name,
  ]
}

resource "postgresql_role" "workflowdb_reader" {
  name  = "workflowdb_reader"
  login = true
}

resource "postgresql_role" "fasadullayev" {
  name  = "fasadullayev"
  login = true

  roles = [
    postgresql_role.workflowdb_reader.name,
  ]
}

resource "postgresql_role" "etaranenko" {
  name  = "etaranenko"
  login = true

  roles = [
    postgresql_role.workflowdb_reader.name,
  ]
}

resource "postgresql_role" "reader" {
  for_each = toset(var.readers)
  name     = each.value
  login    = true

  roles = [
    postgresql_role.workflowdb_reader.name,
  ]
}
