resource "postgresql_grant" "user_data_user_db_connect" {
  database    = postgresql_database.main.name
  role        = postgresql_role.user_data_user.name
  object_type = "database"
  privileges  = ["CONNECT"]
}

resource "postgresql_grant" "user_data_user_schema_ro" {
  database    = postgresql_database.main.name
  role        = postgresql_role.user_data_user.name
  schema      = postgresql_schema.public.name
  object_type = "schema"
  privileges  = ["USAGE"]
}

resource "postgresql_grant" "user_data_user_table_ro" {
  database    = postgresql_database.main.name
  role        = postgresql_role.user_data_user.name
  schema      = postgresql_schema.public.name
  object_type = "table"
  privileges  = ["SELECT", "INSERT", "UPDATE", "DELETE"]
}

resource "postgresql_grant" "user_data_user_sequence_ro" {
  database    = postgresql_database.main.name
  role        = postgresql_role.user_data_user.name
  schema      = postgresql_schema.public.name
  object_type = "sequence"
  privileges  = ["SELECT", "UPDATE", "USAGE"]
}

resource "postgresql_grant" "user_data_reader_db_connect" {
  database    = postgresql_database.main.name
  role        = postgresql_role.user_data_reader.name
  object_type = "database"
  privileges  = ["CONNECT"]
}

resource "postgresql_grant" "user_data_reader_schema_ro" {
  database    = postgresql_database.main.name
  role        = postgresql_role.user_data_reader.name
  schema      = postgresql_schema.public.name
  object_type = "schema"
  privileges  = ["USAGE"]
}

resource "postgresql_grant" "user_data_reader_table_ro" {
  database    = postgresql_database.main.name
  role        = postgresql_role.user_data_reader.name
  schema      = postgresql_schema.public.name
  object_type = "table"
  privileges  = ["SELECT"]
}

resource "postgresql_grant" "user_data_reader_sequence_ro" {
  database    = postgresql_database.main.name
  role        = postgresql_role.user_data_reader.name
  schema      = postgresql_schema.public.name
  object_type = "sequence"
  privileges  = ["SELECT", "USAGE"]
}
