package Ġbr . com . z up . config . validator Ċ Ċ import Ġbr . com . z up . dto . Tipo De Ch ave Ċ import Ġbr . com . z up . dto . request . Nova Ch ave Request Ċ import Ġio . mic ronaut . core . annotation . Annotation Value Ċ import Ġio . mic ronaut . validation . validator . constraints . Constraint Validator Ċ import Ġio . mic ronaut . validation . validator . constraints . Constraint Validator Context Ċ import Ġjak arta . inject . Singleton Ċ import Ġjavax . validation . Constraint Ċ import Ġkotlin . reflect . K Class Ċ Ċ @ Must Be Document ed Ċ @ Target ( Annotation Target . CLASS , ĠAnnotation Target . TYPE ) Ċ @ Retention ( Annotation Retention . RUNTIME ) Ċ @ Constraint ( validated By Ġ= Ġ[ Valid Pix Key Class :: class ]) Ċ annotation Ġclass ĠValid Pix Key ( ĊĠĠĠ Ġval Ġmessage : String Ġ= Ġ" Ver ifique Ġo Ġtipo Ġe Ġo Ġvalor Ġde Ġsua Ġch ave ", ĊĠĠĠ Ġval Ġgroups : ĠArray < K Class < Any >> Ġ= Ġ[], ĊĠĠĠ Ġval Ġpayload : ĠArray < K Class < Any >> Ġ= Ġ[] Ċ ) Ċ Ċ @ Singleton Ċ class ĠValid Pix Key Class : ĠConstraint Validator < Valid Pix Key , ĠN ova Ch ave Request > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠisValid ( ĊĠĠĠĠĠĠĠ Ġvalue : ĠN ova Ch ave Request ?, ĊĠĠĠĠĠĠĠ Ġannotation Metadata : ĠAnnotation Value < Valid Pix Key >, ĊĠĠĠĠĠĠĠ Ġcontext : ĠConstraint Validator Context ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ?. valor ?. let Ġ{ Ġkey Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . tipo Ch ave ?. valid a Key ( key ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġtrue ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun ĠTipo De Ch ave . valid a Key ( key : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġwhen Ġ( this ){ ĊĠĠĠĠĠĠĠ ĠTipo De Ch ave . CP F Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkey . matches ("^ [ 0 - 9 ]{ 1 1 }\ $ ". to Regex ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠTipo De Ch ave . CN PJ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkey . matches ("^ \\ d { 2 }\\ .\\ d { 3 }\\ .\\ d { 3 }\\ / \\ d { 4 }\\ - \\ d { 2 }\ $ ". to Regex ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠTipo De Ch ave . PHONE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkey . matches ("^ \\ + [ 1 - 9 ][ 0 - 9 ]\\ d { 1 , 1 4 }\ $ ". to Regex ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠTipo De Ch ave . EMAIL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkey . matches ("[ a - z 0 - 9 ! # \$ % & '* +/ =? ^ _` { |} ~ - ]+ (?: \\ .[ a - z 0 - 9 ! # \$ % & '* +/ =? ^ _` { |} ~ - ]+ )* @ (?: [ a - z 0 - 9 ]( ?: [ a - z 0 - 9 - ]* [ a - z 0 - 9 ]) ? \\. )+ [ a - z 0 - 9 ]( ?: [ a - z 0 - 9 - ]* [ a - z 0 - 9 ]) ? ". to Regex ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠTipo De Ch ave . RANDOM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkey . isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ