From 7f37a3f8c296a51aa91e888d1bee075469ba7281 Mon Sep 17 00:00:00 2001 From: Wind-Explorer Date: Wed, 21 Jan 2026 17:38:45 +0800 Subject: [PATCH] moved models from remote to models folder --- src-tauri/src/app.rs | 3 +- src-tauri/src/commands/dolls.rs | 3 +- src-tauri/src/commands/friends.rs | 6 ++-- src-tauri/src/models/app_data.rs | 2 +- src-tauri/src/models/dolls.rs | 53 +++++++++++++++++++++++++++++ src-tauri/src/models/friends.rs | 53 +++++++++++++++++++++++++++++ src-tauri/src/models/health.rs | 28 ++++++++++++++++ src-tauri/src/models/mod.rs | 4 +++ src-tauri/src/models/user.rs | 19 +++++++++++ src-tauri/src/remotes/dolls.rs | 55 +------------------------------ src-tauri/src/remotes/friends.rs | 53 +---------------------------- src-tauri/src/remotes/health.rs | 31 ++--------------- src-tauri/src/remotes/user.rs | 21 +----------- 13 files changed, 170 insertions(+), 161 deletions(-) create mode 100644 src-tauri/src/models/dolls.rs create mode 100644 src-tauri/src/models/friends.rs create mode 100644 src-tauri/src/models/health.rs create mode 100644 src-tauri/src/models/user.rs diff --git a/src-tauri/src/app.rs b/src-tauri/src/app.rs index 1ccc0eb..ae0137a 100644 --- a/src-tauri/src/app.rs +++ b/src-tauri/src/app.rs @@ -5,7 +5,8 @@ use tracing::{info, warn}; use crate::{ lock_w, - remotes::health::{HealthError, HealthRemote}, + models::health::HealthError, + remotes::health::HealthRemote, services::{ active_app::init_active_app_changes_listener, auth::{get_access_token, get_tokens}, diff --git a/src-tauri/src/commands/dolls.rs b/src-tauri/src/commands/dolls.rs index 4a69cb4..75ea234 100644 --- a/src-tauri/src/commands/dolls.rs +++ b/src-tauri/src/commands/dolls.rs @@ -1,7 +1,8 @@ use crate::{ lock_r, + models::dolls::{CreateDollDto, DollDto, UpdateDollDto}, remotes::{ - dolls::{CreateDollDto, DollDto, DollsRemote, UpdateDollDto}, + dolls::DollsRemote, user::UserRemote, }, state::{init_app_data_scoped, AppDataRefreshScope, FDOLL}, diff --git a/src-tauri/src/commands/friends.rs b/src-tauri/src/commands/friends.rs index b22a0a3..4c78cf7 100644 --- a/src-tauri/src/commands/friends.rs +++ b/src-tauri/src/commands/friends.rs @@ -1,6 +1,6 @@ -use crate::remotes::friends::{ - FriendRemote, FriendRequestResponseDto, FriendshipResponseDto, SendFriendRequestDto, - UserBasicDto, +use crate::remotes::friends::FriendRemote; +use crate::models::friends::{ + FriendRequestResponseDto, FriendshipResponseDto, SendFriendRequestDto, UserBasicDto, }; #[tauri::command] diff --git a/src-tauri/src/models/app_data.rs b/src-tauri/src/models/app_data.rs index 671a892..c7d1535 100644 --- a/src-tauri/src/models/app_data.rs +++ b/src-tauri/src/models/app_data.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use ts_rs::TS; -use crate::remotes::{dolls::DollDto, friends::FriendshipResponseDto, user::UserProfile}; +use crate::models::{dolls::DollDto, friends::FriendshipResponseDto, user::UserProfile}; #[derive(Serialize, Deserialize, Clone, Debug, TS)] #[ts(export)] diff --git a/src-tauri/src/models/dolls.rs b/src-tauri/src/models/dolls.rs new file mode 100644 index 0000000..348e59c --- /dev/null +++ b/src-tauri/src/models/dolls.rs @@ -0,0 +1,53 @@ +use serde::{Deserialize, Serialize}; +use thiserror::Error; +use ts_rs::TS; + +#[derive(Error, Debug)] +pub enum RemoteError { + #[error("HTTP error: {0}")] + Http(#[from] reqwest::Error), + #[error("JSON parse error: {0}")] + Json(#[from] serde_json::Error), +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct DollColorSchemeDto { + pub outline: String, + pub body: String, +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct DollConfigurationDto { + pub color_scheme: DollColorSchemeDto, +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct CreateDollDto { + pub name: String, + pub configuration: Option, +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct UpdateDollDto { + pub name: Option, + pub configuration: Option, +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct DollDto { + pub id: String, + pub name: String, + pub configuration: DollConfigurationDto, + pub created_at: String, + pub updated_at: String, +} \ No newline at end of file diff --git a/src-tauri/src/models/friends.rs b/src-tauri/src/models/friends.rs new file mode 100644 index 0000000..3ded058 --- /dev/null +++ b/src-tauri/src/models/friends.rs @@ -0,0 +1,53 @@ +use serde::{Deserialize, Serialize}; +use thiserror::Error; +use ts_rs::TS; + +use super::dolls::DollDto; + +#[derive(Error, Debug)] +pub enum RemoteError { + #[error("HTTP error: {0}")] + Http(#[from] reqwest::Error), + #[error("JSON parse error: {0}")] + Json(#[from] serde_json::Error), + #[error("{0}")] + Api(String), +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct UserBasicDto { + pub id: String, + pub name: String, + pub username: Option, + pub active_doll: Option, +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct FriendshipResponseDto { + pub id: String, + pub friend: UserBasicDto, + pub created_at: String, +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct SendFriendRequestDto { + pub receiver_id: String, +} + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct FriendRequestResponseDto { + pub id: String, + pub sender: UserBasicDto, + pub receiver: UserBasicDto, + pub status: String, + pub created_at: String, + pub updated_at: String, +} \ No newline at end of file diff --git a/src-tauri/src/models/health.rs b/src-tauri/src/models/health.rs new file mode 100644 index 0000000..c2bf5e5 --- /dev/null +++ b/src-tauri/src/models/health.rs @@ -0,0 +1,28 @@ +use reqwest::StatusCode; +use serde::{Deserialize, Serialize}; +use thiserror::Error; +use ts_rs::TS; + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct HealthResponseDto { + pub status: String, + pub version: String, + pub uptime_secs: u64, + pub db: String, +} + +#[derive(Error, Debug)] +pub enum HealthError { + #[error("app configuration missing {0}")] + ConfigMissing(&'static str), + #[error("health request failed: {0}")] + Request(reqwest::Error), + #[error("unexpected health status: {0}")] + UnexpectedStatus(StatusCode), + #[error("health status reported not OK: {0}")] + NonOkStatus(String), + #[error("health response decode failed: {0}")] + Decode(reqwest::Error), +} \ No newline at end of file diff --git a/src-tauri/src/models/mod.rs b/src-tauri/src/models/mod.rs index 992960a..99155a0 100644 --- a/src-tauri/src/models/mod.rs +++ b/src-tauri/src/models/mod.rs @@ -1,2 +1,6 @@ pub mod app_data; +pub mod dolls; +pub mod friends; +pub mod health; pub mod interaction; +pub mod user; diff --git a/src-tauri/src/models/user.rs b/src-tauri/src/models/user.rs new file mode 100644 index 0000000..ad2b7cf --- /dev/null +++ b/src-tauri/src/models/user.rs @@ -0,0 +1,19 @@ +use serde::{Deserialize, Serialize}; +use ts_rs::TS; + +#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export)] +pub struct UserProfile { + pub id: String, + pub keycloak_sub: String, + pub name: String, + pub email: String, + pub username: Option, + + pub roles: Vec, + pub created_at: String, + pub updated_at: String, + pub last_login_at: Option, + pub active_doll_id: Option, +} \ No newline at end of file diff --git a/src-tauri/src/remotes/dolls.rs b/src-tauri/src/remotes/dolls.rs index 78f5bed..664a65f 100644 --- a/src-tauri/src/remotes/dolls.rs +++ b/src-tauri/src/remotes/dolls.rs @@ -1,59 +1,6 @@ use reqwest::Client; -use serde::{Deserialize, Serialize}; -use thiserror::Error; -use ts_rs::TS; -use crate::{lock_r, services::auth::with_auth, state::FDOLL}; - -#[derive(Error, Debug)] -pub enum RemoteError { - #[error("HTTP error: {0}")] - Http(#[from] reqwest::Error), - #[error("JSON parse error: {0}")] - Json(#[from] serde_json::Error), -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct DollColorSchemeDto { - pub outline: String, - pub body: String, -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct DollConfigurationDto { - pub color_scheme: DollColorSchemeDto, -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct CreateDollDto { - pub name: String, - pub configuration: Option, -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct UpdateDollDto { - pub name: Option, - pub configuration: Option, -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct DollDto { - pub id: String, - pub name: String, - pub configuration: DollConfigurationDto, - pub created_at: String, - pub updated_at: String, -} +use crate::{lock_r, services::auth::with_auth, state::FDOLL, models::dolls::*}; pub struct DollsRemote { pub base_url: String, diff --git a/src-tauri/src/remotes/friends.rs b/src-tauri/src/remotes/friends.rs index 509f5bd..2c46fc6 100644 --- a/src-tauri/src/remotes/friends.rs +++ b/src-tauri/src/remotes/friends.rs @@ -1,57 +1,6 @@ use reqwest::Client; -use serde::{Deserialize, Serialize}; -use thiserror::Error; -use ts_rs::TS; -use crate::{lock_r, remotes::dolls::DollDto, services::auth::with_auth, state::FDOLL}; - -#[derive(Error, Debug)] -pub enum RemoteError { - #[error("HTTP error: {0}")] - Http(#[from] reqwest::Error), - #[error("JSON parse error: {0}")] - Json(#[from] serde_json::Error), - #[error("{0}")] - Api(String), -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct UserBasicDto { - pub id: String, - pub name: String, - pub username: Option, - pub active_doll: Option, -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct FriendshipResponseDto { - pub id: String, - pub friend: UserBasicDto, - pub created_at: String, -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct SendFriendRequestDto { - pub receiver_id: String, -} - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct FriendRequestResponseDto { - pub id: String, - pub sender: UserBasicDto, - pub receiver: UserBasicDto, - pub status: String, - pub created_at: String, - pub updated_at: String, -} +use crate::{lock_r, services::auth::with_auth, state::FDOLL, models::friends::*}; pub struct FriendRemote { pub base_url: String, diff --git a/src-tauri/src/remotes/health.rs b/src-tauri/src/remotes/health.rs index 609a9a2..9599d35 100644 --- a/src-tauri/src/remotes/health.rs +++ b/src-tauri/src/remotes/health.rs @@ -1,33 +1,6 @@ -use reqwest::{Client, StatusCode}; -use serde::{Deserialize, Serialize}; -use thiserror::Error; -use ts_rs::TS; +use reqwest::Client; -use crate::{lock_r, state::FDOLL}; - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct HealthResponseDto { - pub status: String, - pub version: String, - pub uptime_secs: u64, - pub db: String, -} - -#[derive(Error, Debug)] -pub enum HealthError { - #[error("app configuration missing {0}")] - ConfigMissing(&'static str), - #[error("health request failed: {0}")] - Request(reqwest::Error), - #[error("unexpected health status: {0}")] - UnexpectedStatus(StatusCode), - #[error("health status reported not OK: {0}")] - NonOkStatus(String), - #[error("health response decode failed: {0}")] - Decode(reqwest::Error), -} +use crate::{lock_r, state::FDOLL, models::health::*}; pub struct HealthRemote { pub base_url: String, diff --git a/src-tauri/src/remotes/user.rs b/src-tauri/src/remotes/user.rs index 86f4aea..0d2e02c 100644 --- a/src-tauri/src/remotes/user.rs +++ b/src-tauri/src/remotes/user.rs @@ -1,25 +1,6 @@ use reqwest::{Client, Error}; -use serde::{Deserialize, Serialize}; -use ts_rs::TS; -use crate::{lock_r, services::auth::with_auth, state::FDOLL}; - -#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)] -#[serde(rename_all = "camelCase")] -#[ts(export)] -pub struct UserProfile { - pub id: String, - pub keycloak_sub: String, - pub name: String, - pub email: String, - pub username: Option, - - pub roles: Vec, - pub created_at: String, - pub updated_at: String, - pub last_login_at: Option, - pub active_doll_id: Option, -} +use crate::{lock_r, services::auth::with_auth, state::FDOLL, models::user::*}; pub struct UserRemote { pub base_url: String,