package Ġorg . f pe ter ek . vir g ine urope . api Ċ Ċ import Ġorg . f pe ter ek . vir g ine urope . orm . VU Ċ import Ġorg . f pe ter ek . vir g ine urope . orm . entities . Flight Ticket Ċ import Ġorg . f pe ter ek . vir g ine urope . orm . tables . Air port Table Ċ import Ġorg . joda . time . LocalDate Ċ import Ġorg . joda . time . Local Time Ċ Ċ object ĠList Tickets Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdest Table Ġ= Ġ( VU . airport ĠAS Ġ" dest ") Ġas ĠAir port Table ĊĠĠĠ Ġprivate Ġval Ġorig Table Ġ= Ġ( VU . airport ĠAS Ġ" orig ") Ġas ĠAir port Table ĊĊĠĠĠ Ġprivate Ġfun Ġselect Query ( p ax : ĠInt ) Ġ= ĠSELECT ĠFROM ĠV U . flight Ticket ĠJOIN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV U . oper ated Flight ĠON Ġ( VU . oper ated Flight . id ĠE Q ĠV U . flight Ticket . oper ated Id ) ĠJOIN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV U . flight ĠON Ġ( VU . oper ated Flight . flight Id ĠE Q ĠV U . flight . id ) ĠJOIN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV U . route ĠON Ġ( VU . route . id ĠE Q ĠV U . flight . route Id ) ĠJOIN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest Table ĠON Ġ( VU . route . destination ĠE Q Ġdest Table . icao ) ĠJOIN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorig Table ĠON Ġ( VU . route . origin ĠE Q Ġorig Table . icao ) ĊĊĠĠĠ Ġprivate Ġfun Ġquery All Tickets ( p ax : ĠInt ): ĠList < Flight Ticket > Ġ= ĠDB . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Query ( p ax ) ĠWHERE Ġ( VU . flight Ticket . pass enger Id ĠE Q Ġp ax ) ĊĠĠĠ Ġ). flight Tickets ĊĊĠĠĠ Ġprivate Ġfun Ġquery By Date ( p ax : ĠInt , Ġdate : ĠLocalDate ): ĠList < Flight Ticket > Ġ= ĠDB . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Query ( p ax ) ĠWHERE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( VU . flight Ticket . pass enger Id ĠE Q Ġp ax ) ĠAND Ġ( VU . oper ated Flight . date ĠG TE Ġdate )) ĊĠĠĠ Ġ). flight Tickets ĊĊĠĠĠ Ġprivate Ġfun Ġformat ( time : ĠLocal Time ) Ġ= Ġtime . toString (" HH : mm : ss ") ĊĊĠĠĠ Ġprivate Ġfun Ġformat Ticket ( ticket : ĠFlight Ticket ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " id ": Ġ${ ticket . ticket Id }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " flight ": Ġ"${ ticket . oper ated Flight . flight Id }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " date ": Ġ"${ ticket . oper ated Flight . date }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " class ": Ġ"${ ticket . travel Class . db Value () }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " meal ": Ġ"${ ticket . meal }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " allow ance ": Ġ${ ticket . bag gage Allow ance }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " seat ": Ġ"${ ticket . seat }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " destination ": Ġ"${ ticket . oper ated Flight . flight . route . destination . i ata }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " origin ": Ġ"${ ticket . oper ated Flight . flight . route . origin . i ata }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " depart ure ": Ġ"${ format ( ticket . oper ated Flight . flight . depart ure Time )} ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " equipment ": Ġ"${ ticket . oper ated Flight . flight . model Design ator }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } """. trim Margin (). replace ("\ n ", Ġ"") ĊĊĠĠĠ Ġprivate Ġfun Ġquery Tickets ( id : ĠInt , Ġall : ĠBoolean ) Ġ= Ġif Ġ( all ) Ġ{ ĊĠĠĠĠĠĠĠ Ġquery All Tickets ( id ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġquery By Date ( id , ĠLocalDate . now ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġformat Json ( ticket List : ĠString ) Ġ= Ġ""" {" tickets ": Ġ$ ticket List } """ ĊĊĠĠĠ Ġfun Ġlist Tickets ( p ax : ĠString , Ġall Tickets : ĠString ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġp ax . toInt OrNull () Ġ?: Ġreturn Ġ""" {" error ": Ġ" Invalid ĠID "} """ ĊĠĠĠĠĠĠĠ Ġval Ġall Ġ= Ġall Tickets Ġ== Ġ" 1 " Ġ|| Ġall Tickets . toLowerCase () Ġ== Ġ" true " ĊĊĠĠĠĠĠĠĠ Ġval Ġtickets Ġ= Ġquery Tickets ( id , Ġall ). join ToString ( separator =", ", Ġprefix ="[ ", Ġpostfix =" ]") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ticket ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġformat Json ( tickets ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ