@startuml
'https://plantuml.com/sequence-diagram

autonumber

actor IexUser
entity TenSummonersTales
entity Summoner
entity RiotApiClient
entity SummonerTracker
boundary RiotDevelopmentApi

IexUser -> TenSummonersTales : track_summoner(name, region)
TenSummonersTales -> Summoner : fetch_summoner_opponents(summoner_name, region)
Summoner -> RiotApiClient : fetch_summoner
RiotApiClient -> RiotDevelopmentApi : Summoner-V4 (/lol/summoner/v4/summoners/by-name/{summonerName})
RiotApiClient <- RiotDevelopmentApi : {summoner}
Summoner <- RiotApiClient : {summoner}
Summoner -> RiotApiClient : fetch_matches(puuid, region)
RiotApiClient -> RiotDevelopmentApi : Match-V5 (/lol/match/v5/matches/by-puuid/{puuid}/ids)
RiotApiClient <- RiotDevelopmentApi : [matches]
Summoner <- RiotApiClient : [{match}]

loop match-length times
  Summoner -> RiotApiClient : fetch_match(match_id)
  RiotApiClient -> RiotDevelopmentApi : Match-V5 (/lol/match/v5/matches/{matchId})
  RiotApiClient <- RiotDevelopmentApi : {match}
  Summoner <- RiotApiClient : {match}
end

TenSummonersTales <- Summoner : [{summoner name, puuid}]

TenSummonersTales -> SummonerTracker : track_summoners([summoner])

IexUser <- TenSummonersTales : [summoner names]

@enduml
