package Ġno . mester grup pen . job application 2 0 2 1 . out box . database Ċ Ċ import Ġorg . jetbrains . ex posed . dao . id . UUID Table Ċ import Ġorg . jetbrains . ex posed . sql . Result Row Ċ import Ġorg . jetbrains . ex posed . sql .` java - time `. timestamp Ċ import Ġjava . sql . ResultSet Ċ import Ġjava . time . Instant Ċ import Ġjava . util .* Ċ Ċ object ĠTable Ġ: ĠUUID Table (" job ") Ġ{ ĊĊĠĠĠ Ġval Ġstatus Ġ= Ġenumeration (" status ", ĠJob Status :: class ). default ( JobStatus . CREATED ) ĊĠĠĠ Ġval Ġexecutor Class Ġ= Ġtext (" executor _ class ") ĊĠĠĠ Ġval Ġdata Ġ= Ġtext (" context "). nullable () ĊĠĠĠ Ġval ĠrequestId Ġ= Ġuuid (" request _ id "). nullable () ĊĠĠĠ Ġval ĠcreatedAt Ġ= Ġtimestamp (" created _ at "). client Default Ġ{ ĠInstant . now () Ġ} ĊĠĠĠ Ġval ĠstartTime Ġ= Ġtimestamp (" start _ time "). nullable () ĊĠĠĠ Ġval ĠendTime Ġ= Ġtimestamp (" end _ time "). nullable () ĊĊĠĠĠ Ġfun Ġto Job ( row : ĠResult Row ): ĠJob Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJob ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġrow [ id ]. value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġrow [ status ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor Class Ġ= ĠClass . forName ( row [ executor Class ]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġrow [ data ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġrow [ requestId ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= Ġrow [ createdAt ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Ġ= Ġrow [ startTime ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠendTime Ġ= Ġrow [ endTime ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġto Job ( resultSet : ĠResultSet ): ĠJob Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJob ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠUUID . fromString ( resultSet . getString ( id . name )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠJob Status . values ()[ resultSet . getInt ( status . name )], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor Class Ġ= ĠClass . forName ( resultSet . getString ( executor Class . name )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠresultSet . getString ( data . name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= ĠUUID . fromString ( resultSet . getString ( requestId . name )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= ĠresultSet . getTimestamp ( createdAt . name ). to Instant (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Ġ= ĠresultSet . getTimestamp ( startTime . name )?. to Instant (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠendTime Ġ= ĠresultSet . getTimestamp ( endTime . name )?. to Instant () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ }