package Ġcom . m aly . domain . event Ċ Ċ import Ġcom . m aly . domain . building . Building Ċ import Ġcom . m aly . domain . play . Play Ċ import Ġcom . m aly . domain . room . Room Ċ import Ġorg . springframework . data . jpa . domain . Specification Ċ import Ġjava . time . LocalDateTime Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAle ks ander ĠBr zo z owski Ċ Ġ*/ Ċ class ĠEvent Specification Ġprivate Ġconstructor () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfor Play ( play Id : ĠLong ): ĠSpecification < Event > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSpecification Ġ{ Ġroot , Ġ_, Ġcb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplay Ġ= Ġroot . get < Play >(" play ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcb . equal ( play . get < Long >(" id "), Ġplay Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfor Future Date (): ĠSpecification < Event > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSpecification Ġ{ Ġroot , Ġ_, Ġcb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġroot . get < LocalDateTime >(" date ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcb . greater Than ( date , ĠLocalDateTime . now ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfor Building ( building Id : ĠLong ): ĠSpecification < Event > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSpecification Ġ{ Ġroot , Ġ_, Ġcb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilding Ġ= Ġroot . get < Room >(" room "). get < Building >(" building ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcb . equal ( building . get < Long >(" id "), Ġbuilding Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }