package Ġbr . com . z up . edu . servic ose x tern os Ċ Ċ import Ġbr . com . z up . edu . Tipo Cont a Ċ import Ġbr . com . z up . edu . pix . bus c arch ave . Ch ave Pix Info Ċ import Ġbr . com . z up . edu . entities . Cont a Associ ada Ċ import Ġbr . com . z up . edu . pix . nov ach ave . Tipo De Ch ave Ċ import Ġio . mic ronaut . http . HttpResponse Ċ import Ġio . mic ronaut . http . MediaType Ċ import Ġio . mic ronaut . http . annotation .* Ċ import Ġio . mic ronaut . http . client . annotation . Client Ċ import Ġjava . time . LocalDateTime Ċ Ċ @ Client ( value Ġ= Ġ"\ ${ bcb . pix . url }") Ċ interface ĠS istema Pix B CB Client Ġ{ ĊĊĠĠĠ Ġ@ Post ( value Ġ= Ġ"/ api / v 1 / pix / keys ") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ XML ) ĊĠĠĠ Ġ@ Cons umes ( MediaType . APPLICATION _ XML ) ĊĠĠĠ Ġfun Ġregist ra (@ Body Ġch ave Pix B CB Request : ĠCreate Pix Key Request ): ĠHttpResponse < Create Pix Key Response > ĊĊĠĠĠ Ġ@ Delete ("/ api / v 1 / pix / keys /{ key }") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ XML ) ĊĠĠĠ Ġ@ Cons umes ( MediaType . APPLICATION _ XML ) ĊĠĠĠ Ġfun Ġde let ar (@ PathVariable Ġkey : ĠString , Ġ@ Body Ġdelete Pix Key Request : ĠDelete Pix Key Request ): ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse < Delete Pix Key Response > ĊĊĠĠĠ Ġ@ Get ("/ api / v 1 / pix / keys /{ key }") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ XML ) ĊĠĠĠ Ġ@ Cons umes ( MediaType . APPLICATION _ XML ) ĊĠĠĠ Ġfun Ġbus ca Por (@ PathVariable Ġkey : ĠString ): ĠHttpResponse < Ch ave Pix Det al he Response > Ċ } Ċ Ċ data Ġclass ĠCreate Pix Key Request ( ĊĠĠĠ Ġval Ġkey Type : ĠKey Type , ĊĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠ Ġval Ġbank Account : ĠBank Account , ĊĠĠĠ Ġval Ġowner : ĠOwner , Ċ ) Ċ Ċ enum Ġclass ĠKey Type Ġ{ ĊĠĠĠ ĠC PF , ĠR AN DOM , ĠE MAIL , ĠCN PJ , ĠPH ONE Ċ } Ċ Ċ data Ġclass ĠBank Account ( ĊĠĠĠ Ġval Ġparticipant : ĠString , ĊĠĠĠ Ġval Ġbranch : ĠString , ĊĠĠĠ Ġval Ġaccount Number : ĠString , ĊĠĠĠ Ġval Ġaccount Type : ĠAccount Type , Ċ ) Ċ Ċ enum Ġclass ĠAccount Type Ġ{ ĊĠĠĠ ĠC ACC , ĠSV GS , ĠUNKNOWN _ ACCOUNT Ċ } Ċ Ċ data Ġclass ĠOwner ( ĊĠĠĠ Ġval Ġtype : ĠType Request , ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġtax Id Number : ĠString Ċ ) Ċ Ċ enum Ġclass ĠType Request Ġ{ ĊĠĠĠ ĠN ATUR AL _ PERSON , ĠLE G AL _ PERSON Ċ } Ċ Ċ data Ġclass ĠCreate Pix Key Response ( ĊĠĠĠ Ġval Ġkey Type : ĠKey Type , ĊĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠ Ġval Ġbank Account : ĠBank Account , ĊĠĠĠ Ġval Ġowner : ĠOwner , ĊĠĠĠ Ġval ĠcreatedAt : ĠString Ċ ) Ġ{} Ċ Ċ data Ġclass ĠDelete Pix Key Request ( ĊĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠ Ġval Ġparticipant : ĠString Ġ= ĠCont a Associ ada . IT AU _ UN IB AN CO _ IS PB , Ċ ) Ċ Ċ data Ġclass ĠDelete Pix Key Response ( ĊĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠ Ġval Ġparticipant : ĠString Ċ ) Ċ Ċ data Ġclass ĠCh ave Pix Det al he Response ( ĊĠĠĠ Ġval Ġkey Type : ĠKey Type , ĊĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠ Ġval Ġbank Account : ĠBank Account , ĊĠĠĠ Ġval Ġowner : ĠOwner , ĊĠĠĠ Ġval ĠcreatedAt : ĠLocalDateTime Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġto Model (): ĠCh ave Pix Info Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCh ave Pix Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtipo Ġ= ĠTipo De Ch ave . valueOf ( key Type . name ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġch ave Ġ= Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtipo De Cont a Ġ= Ġwhen Ġ( bank Account . account Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Type . C ACC Ġ-> ĠTipo Cont a . CONT A _ COR REN TE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Type . SV GS Ġ-> ĠTipo Cont a . CONT A _ PO UP AN CA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Type . UNKNOWN _ ACCOUNT Ġ-> ĠTipo Cont a . UNKNOWN _ TI PO _ CONT A ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconta Ġ= ĠCont a Associ ada ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġag encia Ġ= Ġbank Account . branch , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumero Da Cont a Ġ= Ġbank Account . account Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnome Do T it ular Ġ= Ġowner . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc pf Do T it ular Ġ= Ġowner . tax Id Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinst itu icao Ġ= Ġ" IT AU ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcri ada Em Ġ= ĠcreatedAt ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }