locals {
  table_read_privileges       = toset(["REFERENCES", "SELECT"])
  table_write_privileges      = toset(["DELETE", "INSERT", "REBUILD", "TRUNCATE", "UPDATE"])
  table_read_write_privileges = setunion(local.table_read_privileges, local.table_write_privileges)
}

module "role" {
  source           = "../../../internal/objects_access_database_role"
  database_name    = var.database
  role_name_suffix = "${var.schema}_SCHEMA_${var.table}_TABLE_${var.enable_write_privileges ? "READWRITE" : "READ"}"

  schema_objects_by_type_and_privileges = [
    {
      schema     = var.schema,
      type       = "table",
      objects    = [var.table],
      privileges = var.enable_write_privileges ? local.table_read_write_privileges : local.table_read_privileges,
    },
  ]
}
