package Ġio . piv otal . cities . domain . city . entity Ċ Ċ import Ġio . piv otal . cities . domain . city . api . dto . City Dto Ċ import Ġio . piv otal . cities . domain . city . api . dto . Create City Dto Ċ import Ġio . piv otal . cities . domain . city . api . dto . Update City Dto Ċ import Ġio . piv otal . cities . domain . location . jpa . Coordinate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjavax . persistence . Embedded Ċ import Ġjavax . persistence . Entity Ċ import Ġjavax . persistence . Id Ċ import Ġjavax . persistence . Table ĊĊ Ċ @ Entity Ċ @ Table ( name Ġ= Ġ" city ") Ċ internal Ġdata Ġclass ĠCity Entity ( ĊĠĠĠĠĠĠĠ Ġ@ Id Ġval Ġid : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ@ Embedded Ġval Ġlocation : ĠCoordinate , ĊĠĠĠĠĠĠĠ Ġval ĠupdatedAt : ĠLocalDateTime Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠ Ġval ĠcreatedAt : ĠLocalDateTime Ġ= ĠLocalDateTime . now ()) Ġ{ ĊĊĠĠĠ Ġfun Ġto Dto (): ĠCity Dto Ġ= ĠCity Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġthis . id !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġthis . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġthis . description , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġthis . location . to Dto (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠupdatedAt Ġ= Ġthis . updatedAt , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= Ġthis . createdAt ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Dto ( dto : ĠCity Dto ) Ġ= ĠCity Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġdto . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġdto . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdto . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= ĠCoordinate . from Dto ( dto . location ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠupdatedAt Ġ= Ġdto . updatedAt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= Ġdto . createdAt ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Dto ( dto : ĠCreate City Dto ) Ġ= ĠCity Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġdto . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġdto . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdto . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= ĠCoordinate ( dto . location . longitude , Ġdto . location . latitude )) ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Dto ( dto : ĠUpdate City Dto , Ġdefault City : ĠCity Entity ) Ġ= ĠCity Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġdefault City . id !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġdto . name Ġ?: Ġdefault City . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdto . description Ġ?: Ġdefault City . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġif Ġ( dto . location Ġ!= Ġnull ) ĠCoordinate . from Dto ( dto . location ) Ġelse Ġdefault City . location , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠupdatedAt Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= Ġdefault City . createdAt ) ĊĊĠĠĠ Ġ} Ċ Ċ }