diff --git a/diagram/erd.png b/diagram/erd.png new file mode 100644 index 0000000..db44e4c Binary files /dev/null and b/diagram/erd.png differ diff --git a/diagram/erd.puml b/diagram/erd.puml new file mode 100644 index 0000000..28634e2 --- /dev/null +++ b/diagram/erd.puml @@ -0,0 +1,82 @@ +@startuml +hide circle +skinparam linetype ortho + +package auth { + + entity auth { + *token : binary(40) primary + password : binary(60) + when_create : datetime + when_udate : datetime null + -- + } + + entity auth_session { + *id : int(11) a_i primary + *token : binary(40) index + start : datetime + end : datetime null + when_create : datetime + when_update : datetime null + -- + *token = auth.token + } + auth ||-o| auth_session + + entity auth_profile{ + *id : int(11) a_i primary + *token : binary(40) index + username : varchar(36) unique + email : longtext unique + phone : bigint(20) unique + when_create : datetime + when_update : datetime null + -- + *token = auth.token + } + auth ||--|| auth_profile + + entity auth_profile_verification{ + *id : int(11) a_i primary + *auth_profile : int(11) index + type : longtext 'email' + verified : int(1) 0 + when_create : datetime + when_update : datetime null + -- + *auth_profile = auth_profile.id + } + auth_profile ||-|{ auth_profile_verification + + entity auth_roles{ + *id : int(11) a_i primary + name : varchar(36) + when_create : datetime + when_update : datetime null + -- + } + + entity auth_profile_roles{ + *id : int(11) a_i primary + *auth_profile : int(11) index + *auth_roles : int(11) index + when_create : datetime + when_update : datetime null + -- + *auth_profile = auth_profile.id + *auth_roles = auth_roles.id + } + auth_roles ||--o{ auth_profile_roles + auth_profile_roles }o-|| auth_profile + +} + +package profile{ + + entity profile_actor{} + auth_profile ||--o| profile_actor + +} + +@enduml \ No newline at end of file