package Ġdev . sas ikan th . pin nit . editor Ċ Ċ import Ġdev . sas ikan th . pin nit . editor . Schedule Validator . Result . Schedule In Past Error Ċ import Ġdev . sas ikan th . pin nit . editor . Schedule Validator . Result . Valid Ċ import Ġdev . sas ikan th . pin nit . utils . User Clock Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Local Time Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠSchedule Validator Ġ@ Inject Ġconstructor ( val Ġuser Clock : ĠUser Clock ) Ġ{ ĊĊĠ Ġfun Ġvalidate ( schedule Date : ĠLocalDate , Ġschedule Time : ĠLocal Time ): ĠResult Ġ{ ĊĠĠĠ Ġval Ġschedule DateTime Ġ= Ġschedule Date . at Time ( schedule Time ) ĊĠĠĠ Ġval Ġnow Ġ= ĠLocalDateTime . now ( user Clock ) ĊĊĠĠĠ Ġif Ġ( schedule DateTime . is Before ( now )) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠSchedule In Past Error ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠValid ĊĠ Ġ} ĊĊĠ Ġsealed Ġclass ĠResult Ġ{ ĊĊĠĠĠ Ġobject ĠValid Ġ: ĠResult () ĊĊĠĠĠ Ġobject ĠSchedule In Past Error Ġ: ĠResult () ĊĠ Ġ} Ċ } Ċ