package Ġcom . api . e commerce . d tos . requests Ċ Ċ import Ġcom . api . e commerce . d tos . exceptions . StatusCode Ċ import Ġjava . util . regex . Pattern Ċ Ċ class ĠRegister Request ( ĊĠĠĠ Ġval ĠuserName : ĠString , ĊĠĠĠ Ġval Ġpassword : ĠString , ĊĠĠĠ Ġval Ġemail : ĠString , ĊĠĠĠ Ġval Ġphone : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġvalidate (): ĠStatusCode Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( userName . isEmpty ()) Ġreturn ĠStatusCode . Name NotNull ĊĠĠĠĠĠĠĠ Ġif Ġ( email . isEmpty ()) Ġreturn ĠStatusCode . Email NotNull ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Email Valid ( email )) Ġreturn ĠStatusCode . Email Invalid ĊĠĠĠĠĠĠĠ Ġif Ġ( password . length Ġ< Ġ 6 ) Ġreturn ĠStatusCode . Password Min Length ĊĠĠĠĠĠĠĠ Ġif Ġ( password . length Ġ> Ġ 1 2 ) Ġreturn ĠStatusCode . Password MaxLength ĊĊĠĠĠĠĠĠĠ Ġreturn ĠStatusCode . OK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Email Valid ( email : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠE MAIL _ PATTERN . matcher ( email ). matches () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠE MAIL _ PATTERN : ĠPattern Ġ= ĠPattern . compile ( ĊĠĠĠĠĠĠĠ Ġ"[ a - zA - Z 0 - 9 \\ + \\. \\ _ \\ % \\ - \\ + ]{ 1 , 2 5 6 }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\\ @" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ a - zA - Z 0 - 9 ][ a - zA - Z 0 - 9 \\ - ]{ 0 , 6 4 }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\\ ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ a - zA - Z 0 - 9 ][ a - zA - Z 0 - 9 \\ - ]{ 0 , 2 5 }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") +" ĊĠĠĠ Ġ) Ċ }