This commit is contained in:
2026-05-26 20:29:34 +02:00
parent 3000bb0e5d
commit d3d0e9b83c

132
README.md
View File

@@ -49,11 +49,12 @@ The HTML code for the frontend can be generated by using `trunk build`. The resu
```mermaid ```mermaid
classDiagram classDiagram
direction RL direction RL
class backend_src_cookie_Error { namespace Backend {
class cookie_Error {
+status: &'static str +status: &'static str
+message: String +message: String
} }
class backend_src_TicketResponse { class TicketResponse {
+id: i32 +id: i32
+category: String +category: String
+betreff: String +betreff: String
@@ -65,7 +66,7 @@ classDiagram
+user_first_name: String +user_first_name: String
+user_last_name: String +user_last_name: String
} }
class backend_src_User { class User {
+id: i16 +id: i16
+last_name: String +last_name: String
+first_name: String +first_name: String
@@ -73,16 +74,16 @@ classDiagram
+is_admin: bool +is_admin: bool
+pwd: String +pwd: String
} }
class backend_src_TicketCreateScheme { class TicketCreateScheme {
+category: String +category: String
+betreff: String +betreff: String
+description: String +description: String
+room: i16 +room: i16
} }
class backend_src_TicketUpdateScheme { class TicketUpdateScheme {
+status: String +status: String
} }
class backend_src_UserUpdateScheme { class UserUpdateScheme {
+id: i16 +id: i16
+first_name: String +first_name: String
+last_name: String +last_name: String
@@ -90,80 +91,52 @@ classDiagram
+make_admin: bool +make_admin: bool
+new_pwd: String +new_pwd: String
} }
class backend_src_UserCreateScheme { class UserCreateScheme {
+first_name: String +first_name: String
+last_name: String +last_name: String
+username: String +username: String
+is_admin: bool +is_admin: bool
+pwd: String +pwd: String
} }
class backend_src_LoginScheme { class LoginScheme {
+username: String +username: String
+pwd: String +pwd: String
} }
class backend_src_FilteredUser { class FilteredUser {
+id: i16 +id: i16
+first_name: String +first_name: String
+last_name: String +last_name: String
+username: String +username: String
+is_admin: bool +is_admin: bool
} }
class backend_src_Claims { class Claims {
+sub: String +sub: String
+issued: usize +issued: usize
+expires: usize +expires: usize
} }
class backend_src_AppState { class AppState {
-db: PgPool -db: PgPool
-env: backend_src_Env -env: Env
} }
class backend_src_Env { class Env {
+db_url: String +db_url: String
+token_secret: String +token_secret: String
+origin: String +origin: String
+backend_port: String +backend_port: String
+load() backend_src_Env +load() Env
} }
class backend_target_debug_build_chrono-tz-56cec396bfb3cea1_out_FromStr {
+from_str(s:&str) Result~Self, Self::Err~
} }
class backend_target_debug_build_chrono-tz-56cec396bfb3cea1_out_Tz { namespace Frontend {
+name() &'static str class TicketCreateScheme {
}
class backend_target_debug_build_chrono-tz-56cec396bfb3cea1_out_Debug {
+fmt(f:&mut Formatter) fmt::Result
}
class backend_target_debug_build_chrono-tz-56cec396bfb3cea1_out_Display {
+fmt(f:&mut Formatter) fmt::Result
}
class backend_target_debug_build_chrono-tz-56cec396bfb3cea1_out_TimeSpans {
+timespans() FixedTimespanSet
}
class backend_target_debug_build_chrono-tz-261584f9cc573a32_out_FromStr {
+from_str(s:&str) Result~Self, Self::Err~
}
class backend_target_debug_build_chrono-tz-261584f9cc573a32_out_Tz {
+name() &'static str
}
class backend_target_debug_build_chrono-tz-261584f9cc573a32_out_Debug {
+fmt(f:&mut Formatter) fmt::Result
}
class backend_target_debug_build_chrono-tz-261584f9cc573a32_out_Display {
+fmt(f:&mut Formatter) fmt::Result
}
class backend_target_debug_build_chrono-tz-261584f9cc573a32_out_TimeSpans {
+timespans() FixedTimespanSet
}
class frontend_src_pages_TicketCreateScheme {
+category: String +category: String
+betreff: String +betreff: String
+description: String +description: String
+room: i16 +room: i16
} }
class frontend_src_pages_TicketUpdateScheme { class TicketUpdateScheme {
+status: String +status: String
} }
class frontend_src_pages_Ticket { class Ticket {
+id: i32 +id: i32
+category: String +category: String
+betreff: String +betreff: String
@@ -175,70 +148,70 @@ classDiagram
+user_first_name: String +user_first_name: String
+user_last_name: String +user_last_name: String
} }
class frontend_src_pages_TicketProps { class TicketProps {
+id: i32 +id: i32
} }
class frontend_src_pages_ActiveUser { class ActiveUser {
+id: Option~i16~ +id: Option~i16~
+is_admin: bool +is_admin: bool
} }
class frontend_src_pages_ApiError { class ApiError {
-message: String -message: String
-_status: String -_status: String
} }
class frontend_src_pages_SidebarExpandState { class SidebarExpandState {
+ticket_open: bool +ticket_open: bool
+users_open: bool +users_open: bool
} }
class frontend_src_pages_Default { class Default {
+default() Self +default() Self
} }
class frontend_src_pages_SidebarState { class SidebarState {
+expand: frontend_src_pages_SidebarExpandState +expand: SidebarExpandState
+set_tickets_open: Callback~bool~ +set_tickets_open: Callback~bool~
+toggle_tickets: Callback~()~ +toggle_tickets: Callback~()~
+set_users_open: Callback~bool~ +set_users_open: Callback~bool~
+toggle_users: Callback~()~ +toggle_users: Callback~()~
+new(expand:frontend_src_pages_SidebarExpandState, set_tickets_open:Callback~bool~, toggle_tickets:Callback~()~, set_users_open:Callback~bool~, toggle_users:Callback~()~) Self +new(expand:SidebarExpandState, set_tickets_open:Callback~bool~, toggle_tickets:Callback~()~, set_users_open:Callback~bool~, toggle_users:Callback~()~) Self
} }
class frontend_src_pages_SidebarProps { class SidebarProps {
+children: Children +children: Children
} }
class frontend_src_pages_TicketPartial { class TicketPartial {
-date: DateTime~Utc~ -date: DateTime~Utc~
-room: i16 -room: i16
-user_id: i16 -user_id: i16
} }
class frontend_src_pages_UserPartial { class UserPartial {
-id: i16 -id: i16
-first_name: String -first_name: String
-last_name: String -last_name: String
} }
class frontend_src_pages_RoomTotalsProps { class RoomTotalsProps {
-tickets: Vec~frontend_src_pages_TicketPartial~ -tickets: Vec~TicketPartial~
} }
class frontend_src_pages_UserTotalProps { class UserTotalProps {
-users: Vec~frontend_src_pages_UserPartial~ -users: Vec~UserPartial~
-tickets: Vec~frontend_src_pages_TicketPartial~ -tickets: Vec~TicketPartial~
} }
class frontend_src_pages_AdminSetupScheme { class AdminSetupScheme {
+first_name: String +first_name: String
+last_name: String +last_name: String
+username: String +username: String
+pwd: String +pwd: String
} }
class frontend_src_pages_UserCreateScheme { class UserCreateScheme {
+first_name: String +first_name: String
+last_name: String +last_name: String
+username: String +username: String
+is_admin: bool +is_admin: bool
+pwd: String +pwd: String
} }
class frontend_src_pages_LoginScheme { class LoginScheme {
+username: String +username: String
+pwd: String +pwd: String
} }
class frontend_src_pages_UserUpdateScheme { class UserUpdateScheme {
+id: i16 +id: i16
+first_name: String +first_name: String
+last_name: String +last_name: String
@@ -246,40 +219,41 @@ classDiagram
+make_admin: bool +make_admin: bool
+new_pwd: String +new_pwd: String
} }
class frontend_src_pages_FilteredUser { class FilteredUser {
+id: i16 +id: i16
+first_name: String +first_name: String
+last_name: String +last_name: String
+username: String +username: String
+is_admin: bool +is_admin: bool
} }
class frontend_src_pages_UserProps { class UserProps {
+id: i16 +id: i16
} }
class frontend_src_pages_ApiError { class ApiError {
-message: String -message: String
-_status: String -_status: String
} }
class frontend_src_AuthState { class AuthState {
+is_authenticated: Option~bool~ +is_authenticated: Option~bool~
+is_admin: Option~bool~ +is_admin: Option~bool~
} }
class frontend_src_ProtectedRouteProps { class ProtectedRouteProps {
+children: Children +children: Children
+admin_page: bool +admin_page: bool
} }
class frontend_src_SidebarShellProps { class SidebarShellProps {
+children: Children +children: Children
} }
class frontend_src_AdminCheckWrapperProps { class AdminCheckWrapperProps {
+children: Children +children: Children
} }
backend_src_AppState --> backend_src_Env }
backend_src_Env ..> backend_src_Env AppState --> Env
frontend_src_pages_SidebarState --> frontend_src_pages_SidebarExpandState Env ..> Env
frontend_src_pages_RoomTotalsProps --> frontend_src_pages_TicketPartial SidebarState --> SidebarExpandState
frontend_src_pages_UserTotalProps --> frontend_src_pages_UserPartial RoomTotalsProps --> TicketPartial
frontend_src_pages_UserTotalProps --> frontend_src_pages_TicketPartial UserTotalProps --> UserPartial
UserTotalProps --> TicketPartial
``` ```