channel Signup {
out accounts(acDB:Map, signUp(aid:Str, name:Str)) = insert(acDB, aid, {"name": name})
}
channel ChangeName(aid:Str) {
out accounts.{aid}.name(prevName:Str, changeName(name)) = name
}
channel CreateRoom {
out rooms(rmDB:Map, createRoom(rid:Str, blueId:Str, redId:Str)) = insert(rmDB, rid, {"blue_id": blueId, "red_id": redId})
}
channel ChangeRedId(rid:Str) {
out rooms.{rid}.red_id(prevRedId:Str, changeRedId(redId)) = redId
}
channel ChangeBlueId(rid:Str) {
out rooms.{rid}.blue_id(prevBlueId:Str, changeBlueId(blueId)) = blueId
}
channel UpdateRedName(rid:Str) {
in rooms.{rid}.red_id(prevAid:Str, updateRedName(aid, name)) = aid
in accounts.{aid}.name(prevName:Str, updateRedName(aid, name)) = name
out rooms.{rid}.red_name(prevName:Str, updateRedName(aid, name)) = name
}
channel UpdateBlueName(rid:Str) {
in rooms.{rid}.blue_id(prevAid:Str, updateBlueName(aid, name)) = aid
in accounts.{aid}.name(prevName:Str, updateBlueName(aid, name)) = name
out rooms.{rid}.blue_name(prevName:Str, updateBlueName(aid, name)) = name
}