Mapping in terraform

I want to create a resources base on this yaml file this is related to squadcast Terraform Registry

TEAM1: 
  - user: test@gmail.com
    roles:
      - User
  - user: hello@gmail.com
    roles: 
      - User
      - Admin

but how to achive this in terraform can anyone help? i have tried with local blocks but not get the similar output

locals {

  membership_nested = yamldecode(file("${path.module}/test.yaml"))
membership_flat = distinct(flatten(
    [
      for team_key, team in local.membership_nested : [
        for user in team : {
          team_name = team_key
          user_name = user.user
          roles     = user.roles   
        }
      ]
    ]
  ))

resource block

resource "squadcast_team_member" "membership" {
  for_each = { for i, v in local.membership_flat : i => v }
  team_id  = data.squadcast_team.team_name[each.key].id
  user_id  = data.squadcast_user.user_name[each.key].id
  role_ids = [data.squadcast_team_role.role_name[each.key].id]

}




data "squadcast_team" "team_name" {
  for_each = { for i, v in local.membership_flat : i => v }
  name     = each.value.team_name
}

data "squadcast_user" "user_name" {
  for_each = { for i, v in local.membership_flat : i => v }
  email    = each.value.user_name
}

data "squadcast_team_role" "role_name" {
  for_each = { for role in each.value.roles : role => role }
  name     = each.value.roles
  team_id  = data.squadcast_team.team_name[each.key].id
}


error :
 name     = each.value.roles

is tuple with 2 elements

expected output

Changes to Outputs:
  + membership = [
      + {
          + roles     = [
              + "User",
            ]
          + team_name = "team1"
          + user_name = "test@gmail.com"
        },
      + {
          + roles     = [
              + "User",
              + "Admin",
            ]
          + team_name = "team1"
          + user_name = "hello@gmail.com"
        },
    ]