package Ġcom . co ach . fl ame . api . customer . request Ċ Ċ import Ġcom . co ach . fl ame . domain .* Ċ import Ġorg . springframework . core . convert . converter . Converter Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . time . LocalDate Ċ import Ġjava . util .* Ċ Ċ @ Component Ċ class ĠCustomer Request Converter Ġ: ĠConverter < Customer Request , ĠCustomer > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġconvert ( customer Request : ĠCustomer Request ): ĠCustomer Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Type Dto Ġ= Ġcustomer Request . type ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCustomer Type Dto . valueOf ( customer Request . type . toUpperCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Invalid Ġvalue Ġin Ġtype Ġparameter ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Customer Type Dto . CO ACH Ġ== Ġclient Type Dto ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCo ach Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġcustomer Request . firstname !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġcustomer Request . lastname !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustomer Type Ġ= Ġclient Type Dto , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Info Ġ= ĠLogin Info Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsessionId Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġcustomer Request . email !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġcustomer Request . password !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Decrypt Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistration Date Ġ= ĠLocalDate . now () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( customer Request . registration Key ) Ġ{ Ġ" missing Ġrequired Ġparameter : Ġregistration Key " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClient Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġcustomer Request . firstname !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġcustomer Request . lastname !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustomer Type Ġ= Ġclient Type Dto !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Info Ġ= ĠLogin Info Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsessionId Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġcustomer Request . email !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġcustomer Request . password !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Decrypt Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Status Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistration Date Ġ= ĠLocalDate . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġco ach Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= Ġ 0 . 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 0 . 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure Type Ġ= ĠMeasure Type Dto . KG _ CM , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistration Key Ġ= Ġcustomer Request . registration Key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ