package Ġcom . tol k iana . li quibase demo . presentation . map pers Ċ Ċ import Ġcom . tol k iana . li quibase demo . data . models . Product Ċ import Ġcom . tol k iana . li quibase demo . error Handling . Unexpected Exception Ċ import Ġcom . tol k iana . li quibase demo . presentation . d tos . Product Dto Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġreactor . core . publisher . Flux Ċ import Ġreactor . core . publisher . Mono Ċ Ċ @ Component Ċ class ĠProduct DTO Mapper ( ĊĠĠĠ Ġprivate Ġval Ġcolor Mapper : ĠColor DTO Mapper , ĊĠĠĠ Ġprivate Ġval Ġsize Mapper : ĠSize DTO Mapper Ċ ): ĠD TO Mapper < Product Dto , ĠProduct > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġto DTO s ( models : ĠFlux < Product >): ĠFlux < Product Dto > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmodels . map Ġ{ Ġto DTO ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Models ( d tos : ĠFlux < Product Dto >): ĠFlux < Product > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġd tos . map Ġ{ Ġto Model ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto DTO ( model : ĠMono < Product >): ĠMono < Product Dto > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmodel . map Ġ{ Ġto DTO ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Model ( dto : ĠMono < Product Dto >): ĠMono < Product > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdto . map Ġ{ Ġto Model ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto DTO ( model : ĠProduct ): ĠProduct Dto Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠProduct Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġmodel . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġmodel . code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġmodel . description , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= Ġmodel . colors . map Ġ{ Ġcolor Mapper . to DTO ( it ) Ġ}. toSet (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsizes Ġ= Ġmodel . sizes . map Ġ{ Ġsize Mapper . to DTO ( it ) Ġ}. toSet () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Model ( dto : ĠProduct Dto ): ĠProduct Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠProduct ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġdto . id Ġ?: Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġdto . code Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdto . description Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= Ġdto . colors ?. map Ġ{ Ġcolor Mapper . to Model ( it ) Ġ} Ġ?: Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsizes Ġ= Ġdto . sizes ?. map Ġ{ Ġsize Mapper . to Model ( it ) Ġ} Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ