@startuml
!include style.puml
skinparam arrowThickness 1.5
skinparam arrowColor STORAGE_COLOR
skinparam classBackgroundColor STORAGE_COLOR

Interface Storage <<Interface>>
Interface UserPrefsStorage <<Interface>>
Interface ResumeBookStorage <<Interface>>

Class StorageManager
Class JsonUserPrefsStorage
Class JsonResumeBookStorage

StorageManager .up.|> Storage
StorageManager o-left-> UserPrefsStorage
StorageManager o-> ResumeBookStorage

JsonUserPrefsStorage .up.|> UserPrefsStorage
JsonResumeBookStorage .up.|> ResumeBookStorage
JsonResumeBookStorage .down.> JsonSerializableResumeBook

JsonSerializableResumeBook .right.> JsonSerializablePerson
JsonSerializableResumeBook .down.> JsonSerializableInternship
JsonSerializableResumeBook .down.> JsonSerializableProject
JsonSerializableResumeBook .down.> JsonSerializableResume
JsonSerializableResumeBook .down.> JsonSerializableSkill

JsonSerializableInternship .down.> JsonAdaptedTag
JsonSerializableProject .down.> JsonAdaptedTag
JsonSerializableResume .down.> JsonAdaptedTag
JsonSerializableSkill .down.> JsonAdaptedTag

@enduml

