/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 0 - 2 0 2 1 , ĠSimp lex ion , ĠH ung ary Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġz ak ad ab ar . lib . accounts . data Ċ Ċ import Ġkotlinx . datetime . Instant Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġz ak ad ab ar . core . data . Base Bo Ċ import Ġz ak ad ab ar . core . data . EntityId Ċ import Ġz ak ad ab ar . core . schema . Bo Schema Ċ Ċ /** Ċ Ġ* ĠState Ġof Ġan Ġaccount . Ċ Ġ* Ċ Ġ* Ġ@ property Ġ ĠaccountId ĠĠĠĠĠĠĠĠ ĠThe Ġid Ġof Ġthe Ġ[ Account Private Bo ] ĠBO Ġthis Ġcredentials Ġbelong Ġto . Ċ Ġ* Ġ@ property Ġ Ġvalidated ĠĠĠĠĠĠĠĠ ĠTrue Ġwhen Ġthis Ġaccount Ġis Ġvalidated Ġy Ġemail , Ġby Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġother Ġmeans , Ġor Ġwhen Ġvalidation Ġis Ġswitched Ġoff . Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPre vents Ġlogin Ġwhen Ġfalse . Ċ Ġ* Ġ@ property Ġ Ġlocked ĠĠĠĠĠĠĠĠĠĠĠ ĠTrue Ġwhen Ġthe Ġaccount Ġis Ġlocked Ġand Ġnot Ġallowed Ġto Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Ġin . ĠSet Ġmanually Ġbe Ġsecurity Ġoffic ers . ĠPre vents Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Ġwhen Ġtrue . Ċ Ġ* Ġ@ property Ġ Ġexpired ĠĠĠĠĠĠĠĠĠĠ ĠTrue Ġwhen Ġthe Ġaccount Ġis Ġexpired . ĠPre vents Ġlogin Ġwhen Ġtrue . Ċ Ġ* Ġ@ property Ġ Ġan onym ized ĠĠĠĠĠĠĠ ĠTrue Ġwhen Ġthis Ġaccount Ġis Ġan onym ized . ĠPre vents Ġlog Ġin Ġwhen Ġtrue . Ċ Ġ* Ġ@ property Ġ Ġlast Login Success Ġ ĠTime Ġof Ġthe Ġlast Ġsuccessful Ġlogin Ġon Ġthis Ġaccount . Ċ Ġ* Ġ@ property Ġ Ġlogin Success Count ĠNumber Ġof Ġsuccessful Ġlog ins Ġon Ġthis Ġaccount Ġ( since Ġcreated ). Ċ Ġ* Ġ@ property Ġ Ġlast Login Fail ĠĠĠĠ ĠTime Ġof Ġlast Ġlogin Ġfail . Ċ Ġ* Ġ@ property Ġ Ġlogin Fail Count ĠĠĠ ĠNumber Ġof Ġfailed Ġlog ins Ġon Ġthis Ġaccount Ġsince Ġthe Ġlast Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccessful Ġlogin . Ċ */ Ċ @ Serializable Ċ open Ġclass ĠAccount State Bo ( ĊĊĠĠĠ Ġvar ĠaccountId : ĠEntity Id < Account Private Bo >, ĊĊĠĠĠ Ġvar Ġvalidated Ġ: ĠBoolean , ĊĠĠĠ Ġvar Ġlocked Ġ: ĠBoolean , ĊĠĠĠ Ġvar Ġexpired Ġ: ĠBoolean , ĊĠĠĠ Ġvar Ġan onym ized Ġ: ĠBoolean , ĊĠĠĠ Ġvar Ġlast Login Success Ġ: ĠInstant ?, ĊĠĠĠ Ġvar Ġlogin Success Count Ġ: ĠInt , ĊĠĠĠ Ġvar Ġlast Login Fail Ġ: ĠInstant ?, ĊĠĠĠ Ġvar Ġlogin Fail Count Ġ: ĠInt , Ċ Ċ ) Ġ: ĠBase Bo Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġschema () Ġ= ĠBo Schema Ġ{ ĊĠĠĠĠĠĠĠ Ġ+ Ġ:: accountId ĊĊĠĠĠĠĠĠĠ Ġ+ Ġ:: validated ĊĠĠĠĠĠĠĠ Ġ+ Ġ:: locked ĊĠĠĠĠĠĠĠ Ġ+ Ġ:: expired ĊĠĠĠĠĠĠĠ Ġ+ Ġ:: anon ym ized ĊĠĠĠĠĠĠĠ Ġ+ Ġ:: last Login Success ĊĠĠĠĠĠĠĠ Ġ+ Ġ:: login Success Count ĊĠĠĠĠĠĠĠ Ġ+ Ġ:: last Login Fail ĊĠĠĠĠĠĠĠ Ġ+ Ġ:: login Fail Count ĊĠĠĠ Ġ} Ċ }