From 6c5c5c9e9d3387a48595c1ed8ab9f167edf39eb4 Mon Sep 17 00:00:00 2001 From: Leon Hoppe Date: Wed, 20 Nov 2024 20:20:48 +0100 Subject: [PATCH] Integrated models directly into docs --- docs/Diagrams/Models/ApiModels.puml | 26 ----- docs/Diagrams/Models/BaseModels.puml | 37 -------- docs/Diagrams/Models/DatabaseModels.puml | 38 -------- docs/Diagrams/Models/img/ApiModels.svg | 1 - docs/Diagrams/Models/img/BaseModels.svg | 1 - docs/Diagrams/Models/img/DatabaseModels.svg | 1 - docs/models.md | 100 +++++++++++++++++++- 7 files changed, 97 insertions(+), 107 deletions(-) delete mode 100644 docs/Diagrams/Models/ApiModels.puml delete mode 100644 docs/Diagrams/Models/BaseModels.puml delete mode 100644 docs/Diagrams/Models/DatabaseModels.puml delete mode 100644 docs/Diagrams/Models/img/ApiModels.svg delete mode 100644 docs/Diagrams/Models/img/BaseModels.svg delete mode 100644 docs/Diagrams/Models/img/DatabaseModels.svg diff --git a/docs/Diagrams/Models/ApiModels.puml b/docs/Diagrams/Models/ApiModels.puml deleted file mode 100644 index bb5d25a..0000000 --- a/docs/Diagrams/Models/ApiModels.puml +++ /dev/null @@ -1,26 +0,0 @@ -@startuml ApiModels - -namespace HopFrame.Security { - class UserLogin { - +Email: string - +Password: string - } - - class UserRegister { - +Username: string - +Email: string - +Password: string - } -} - -namespace HopFrame.Api { - class SingleValueResult { - +Value: TValue - } - - class UserPasswordValidation { - +Password: string - } -} - -@enduml \ No newline at end of file diff --git a/docs/Diagrams/Models/BaseModels.puml b/docs/Diagrams/Models/BaseModels.puml deleted file mode 100644 index 62706fc..0000000 --- a/docs/Diagrams/Models/BaseModels.puml +++ /dev/null @@ -1,37 +0,0 @@ -@startuml BaseModels -set namespaceSeparator none - -namespace HopFrame.Database { - class User { - +Id: Guid - +Username: string - +Email: string - +CreatedAt: DateTime - +Permissions: IList - } - - class Permission { - +Id: long - +PermissionName: string - +Owner: Guid - +GrantedAt: DateTime - } - - class PermissionGroup { - +Name: string - +IsDefaultGroup: bool - +Description: string - +CreatedAt: DateTime - +Permissions: IList - } - - interface IPermissionOwner {} -} - -IPermissionOwner <|-- User -IPermissionOwner <|-- PermissionGroup - -User .. Permission -PermissionGroup .. Permission - -@enduml \ No newline at end of file diff --git a/docs/Diagrams/Models/DatabaseModels.puml b/docs/Diagrams/Models/DatabaseModels.puml deleted file mode 100644 index 2e47b5b..0000000 --- a/docs/Diagrams/Models/DatabaseModels.puml +++ /dev/null @@ -1,38 +0,0 @@ -@startuml DatabaseModels -set namespaceSeparator none - -namespace HopFrame.Database { - class UserEntry { - +Id: string - +Username: string - +Email: string - +Password: string - +CreatedAt: DateTime - } - - class TokenEntry { - +Type: int - +Token: string - +UserId: string - +CreatedAt: DateTime - } - - class PermissionEntry { - +RecordId: long - +PermissionText: string - +UserId: string - +GrantedAt: DateTime - } - - class GroupEntry { - +Name: string - +Default: bool - +Description: string - +CreatedAt: DateTime - } -} - -UserEntry *-- TokenEntry -UserEntry *-- PermissionEntry - -@enduml \ No newline at end of file diff --git a/docs/Diagrams/Models/img/ApiModels.svg b/docs/Diagrams/Models/img/ApiModels.svg deleted file mode 100644 index 76a19b4..0000000 --- a/docs/Diagrams/Models/img/ApiModels.svg +++ /dev/null @@ -1 +0,0 @@ -HopFrameSecurityApiUserLoginEmail: stringPassword: stringUserRegisterUsername: stringEmail: stringPassword: stringSingleValueResultTValueValue: TValueUserPasswordValidationPassword: string \ No newline at end of file diff --git a/docs/Diagrams/Models/img/BaseModels.svg b/docs/Diagrams/Models/img/BaseModels.svg deleted file mode 100644 index 89ed8d2..0000000 --- a/docs/Diagrams/Models/img/BaseModels.svg +++ /dev/null @@ -1 +0,0 @@ -HopFrame.DatabaseUserId: GuidUsername: stringEmail: stringCreatedAt: DateTimePermissions: IList<Permission>PermissionId: longPermissionName: stringOwner: GuidGrantedAt: DateTimePermissionGroupName: stringIsDefaultGroup: boolDescription: stringCreatedAt: DateTimePermissions: IList<Permission>IPermissionOwner \ No newline at end of file diff --git a/docs/Diagrams/Models/img/DatabaseModels.svg b/docs/Diagrams/Models/img/DatabaseModels.svg deleted file mode 100644 index fedbd56..0000000 --- a/docs/Diagrams/Models/img/DatabaseModels.svg +++ /dev/null @@ -1 +0,0 @@ -HopFrame.DatabaseUserEntryId: stringUsername: stringEmail: stringPassword: stringCreatedAt: DateTimeTokenEntryType: intToken: stringUserId: stringCreatedAt: DateTimePermissionEntryRecordId: longPermissionText: stringUserId: stringGrantedAt: DateTimeGroupEntryName: stringDefault: boolDescription: stringCreatedAt: DateTime \ No newline at end of file diff --git a/docs/models.md b/docs/models.md index 6af77a4..d33a07d 100644 --- a/docs/models.md +++ b/docs/models.md @@ -6,16 +6,110 @@ This page shows all models that HopFrame uses. ## Base Models These are the models used by the various database services. -![](./Diagrams/Models/img/BaseModels.svg) +```plantuml +set namespaceSeparator none + +namespace HopFrame.Database { + class User { + +Id: Guid + +Username: string + +Email: string + +CreatedAt: DateTime + +Permissions: IList + } + + class Permission { + +Id: long + +PermissionName: string + +Owner: Guid + +GrantedAt: DateTime + } + + class PermissionGroup { + +Name: string + +IsDefaultGroup: bool + +Description: string + +CreatedAt: DateTime + +Permissions: IList + } + + interface IPermissionOwner {} +} + +IPermissionOwner <|-- User +IPermissionOwner <|-- PermissionGroup + +User .. Permission +PermissionGroup .. Permission +``` ## API Models These are the models used by the REST API and the Blazor API. -![](./Diagrams/Models/img/ApiModels.svg) +```plantuml +namespace HopFrame.Security { + class UserLogin { + +Email: string + +Password: string + } + + class UserRegister { + +Username: string + +Email: string + +Password: string + } +} + +namespace HopFrame.Api { + class SingleValueResult { + +Value: TValue + } + + class UserPasswordValidation { + +Password: string + } +} +``` ## Database Models These are the models that correspond to the scheme in the Database -![](./Diagrams/Models/img/DatabaseModels.svg) +```plantuml +set namespaceSeparator none + +namespace HopFrame.Database { + class UserEntry { + +Id: string + +Username: string + +Email: string + +Password: string + +CreatedAt: DateTime + } + + class TokenEntry { + +Type: int + +Token: string + +UserId: string + +CreatedAt: DateTime + } + + class PermissionEntry { + +RecordId: long + +PermissionText: string + +UserId: string + +GrantedAt: DateTime + } + + class GroupEntry { + +Name: string + +Default: bool + +Description: string + +CreatedAt: DateTime + } +} + +UserEntry *-- TokenEntry +UserEntry *-- PermissionEntry +```