package Ġdog . del . data . base . utils Ċ Ċ import Ġdog . del . commons . Date Ċ import Ġdog . del . commons . date Ċ import Ġkotlinx . dn q . Xd Entity Ċ import Ġkotlinx . dn q . simple .* Ċ import Ġkotlinx . dn q . util . Xd Property Cached Provider Ċ import Ġkotlin . reflect . K Property Ċ Ċ fun Ġ< R Ġ: ĠX d Entity > Ġx d Required Date Prop ( ĊĠĠĠ Ġunique : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġdb Name : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġdefault : Ġ(( R , ĠK Property <* >) Ġ-> ĠDate )? Ġ= Ġnull , ĊĠĠĠ Ġconstraints : ĠConstraints < R , ĠDate ?> ? Ġ= Ġnull Ċ ) Ġ= ĠX d Property Cached Provider Ġ{ ĊĠĠĠ ĠX d Property < R , ĠLong >( ĊĠĠĠĠĠĠĠ ĠLong :: class . java , ĊĠĠĠĠĠĠĠ Ġdb Name , ĊĠĠĠĠĠĠĠ Ġconstraints . collect (). wrap < R , ĠLong , ĠDate > Ġ{ Ġdate ( it ) Ġ}, ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunique Ġ-> ĠX d Property Requirement . UNIQUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Ġ!= Ġnull Ġ-> ĠX d Property Requirement . OPTIONAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠX d Property Requirement . REQUIRED ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġ{ Ġe , Ġp Ġ-> Ġdefault ?. invoke ( e , Ġp )?. time In Millis Ġ?: Ġ 0 L Ġ} ĊĠĠĠ Ġ). wrap ({ Ġdate ( it ) Ġ}, Ġ{ Ġit . time In Millis Ġ}) Ċ } Ċ Ċ fun Ġ< R Ġ: ĠX d Entity > Ġx d Date Prop ( ĊĠĠĠ Ġunique : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġdb Name : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġdefault : Ġ(( R , ĠK Property <* >) Ġ-> ĠDate )? Ġ= Ġnull , ĊĠĠĠ Ġconstraints : ĠConstraints < R , ĠDate ?> ? Ġ= Ġnull Ċ ) Ġ= ĠX d Property Cached Provider Ġ{ ĊĠĠĠ ĠX d Property < R , ĠLong >( ĊĠĠĠĠĠĠĠ ĠLong :: class . java , ĊĠĠĠĠĠĠĠ Ġdb Name , ĊĠĠĠĠĠĠĠ Ġconstraints . collect (). wrap < R , ĠLong , ĠDate > Ġ{ Ġdate ( it ) Ġ}, ĊĠĠĠĠĠĠĠ Ġif Ġ( unique ) ĠX d Property Requirement . UNIQUE Ġelse ĠX d Property Requirement . OPTIONAL , ĊĠĠĠĠĠĠĠ Ġ{ Ġe , Ġp Ġ-> Ġdefault ?. invoke ( e , Ġp )?. time In Millis Ġ?: Ġ 0 L Ġ} ĊĠĠĠ Ġ). wrap ({ Ġdate ( it ) Ġ}, Ġ{ Ġit . time In Millis Ġ}) Ċ }