@startuml
'https://plantuml.com/class-diagram
class VaccinationCenterStore{
+vaccinationCenterList : List<VaccinationCenter>
+ VaccineCenterId: int

+getVaccinationCenterList(vcId)



}
class VaccineTypeStore{
+vaccineTypeList : List<VaccineType>
+VaccineTypeCode :int
+getVaccineType(vaccineTypeCode)
}
class ScheduleVaccineStore{
+schedule: ScheduleVaccine
+scheduleDTO: ScheduleVaccineDTO
+createNewSchedule(vaccineScheduleDto)
+validateScheduleVaccine(scheduleVaccine)
+addScheduleVaccine(scheduleVaccine))
+saveScheduleVaccine(scheduleVaccine)
}
class ScheduleVaccine{
+snsNumber : int
+vaccinationCenter : String
+date : Date
+time : int
+create(snsNumber,vaccinationCenter, vaccineType,  localDateTime)
}
class ScheduleVaccineDTO{
+snsNumber : int
+vaccine : Vaccine
+vaccinationCenter : String
+date : Date
+time : int
+getSnsNumber()
+getVaccinationCenter()
+getDate()
+getTime()
+create(snsNumber, vaccineTypeCode, vcId, localDateTime)
}
class ScheduleVaccineUI{
}
class ScheduleVaccineController{
+ScheduleVaccine
+Company
+VaccinationCenterStore
+VaccineTypeStore
+chooseVcenterVtype()
+createNewScheduleVaccine(snsNumber, vaccinationCenter, date, time)
+saveSchedule()
}
class Company{
+VaccinationCenterStore
+VaccineTypeStore
+getVaccinationCenterList()
+getVaccinationTypeList()



}


ScheduleVaccineUI ..> ScheduleVaccineController
ScheduleVaccineController..> Company
Company -> VaccineTypeStore : uses
Company -> VaccinationCenterStore : uses
ScheduleVaccineController ..> VaccinationCenterStore
ScheduleVaccineController ..> VaccineTypeStore
ScheduleVaccineController ..> ScheduleVaccineStore
ScheduleVaccineController ..> ScheduleVaccineDTO
ScheduleVaccineStore "1" --> "*" ScheduleVaccine : owns
ScheduleVaccineStore "1" --> "*" ScheduleVaccineDTO : owns

@enduml