@startuml
title PCS TIA Sync - Baseline And Git Overview

actor Engineer
participant "PCS GUI" as Gui
participant "PCS CLI" as Cli
participant "TIA Openness" as Openness
participant "TIA Portal" as TIA
database "Repository" as Repo
participant "Git" as Git

Gui -> Cli : pcs sync status --json
Cli -> Repo : verify Repo == TIA snapshot
Cli --> Gui : baseline can be refreshed
Gui --> Engineer : Refresh Baseline now?

Engineer -> Gui : Yes
Gui -> Cli : pcs sync baseline --force
Cli -> Repo : write .pcs/sync/base-hashes.json
Cli --> Gui : baseline refreshed

Gui -> Cli : git status --porcelain
Cli -> Git : inspect local worktree
Git --> Cli : local changes exist
Gui --> Engineer : Commit & Push now?

Engineer -> Gui : commit message
Gui -> Cli : git add -A
Cli -> Git : stage changed files
Gui -> Cli : git commit -m "..."
Cli -> Git : create commit
Gui -> Cli : git push
Cli -> Git : push to remote
Git --> Cli : push result
Cli --> Gui : done
Gui --> Engineer : repository published

note over Openness, TIA
TIA Openness is not used during baseline refresh or Git publish.
end note

@enduml
