Dmn with multi nested input with loop

I am a newbie in dmn and i have a requirement as below

Sample input:
Input:{
Person: P1
Transaction:{
Transaction Id: 1
Event:{
Event name: “gate opened”,
Event value: “yes”
},
Event:{
Event name: “atm operative”,
Event value: “yes”
},
Event:{
Event name: “open date”,
Event value: “2022-07-28”
}
},
Transaction:{
Transaction Id: 2
Event:{
Event name: “gate opened”,
Event value: “yes”
},
Event:{
Event name: “atm operative”,
Event value: “yes”
},
Event:{
Event name: “open date”,
Event value: “2022-07-29”
}
},
Transaction:{
Transaction Id: 3
Event:{
Event name: “transaction done”
Event value: “yes”
},
Event:{
Event name: “amount value”,
Event value: “100”
},
Event:{
Event name: “open date”,
Event value: “2022-07-29”
}
}
}

To describe i will have one person data who can perform multiple transactions everyday having multiple events under each transaction. There is no specific count for either events or transactions.
My task is to group the events by event name when its “gate opened” and get the min(open date) and max(open date) and assign a unique number for all the matching transaction
If there are no matching transaction i need to use the date to be both min and Max open date and assign another unique number to it

So output should look like below Output:
{Person: P1
Unique data:
{Unique Id: 1,
Mindate:“2022-07-28”,
Maxdate:“2022-07-29”
}
Unique data:
{Unique Id: 2,
Mindate:“2022-07-29”,
Maxdate:“2022-07-29”
}
}

I tried to flatten at transaction level and flatten event level for each transaction. I am unable to compare event name from one transaction to another transaction (group by the event name). I need help in understanding how can I check it running in a loop.

Thanks in advance!!