Compare commits

..
Author SHA1 Message Date
phoenix 38dbcb09f7 Model changes (#22)
Release Tagging / release (push) Successful in 33s
Rust Build / Test Suite (push) Successful in 27s
Rust Build / Check (push) Successful in 1m3s
Rust Build / Rustfmt (push) Successful in 38s
Rust Build / Clippy (push) Successful in 37s
Rust Build / build (push) Successful in 27s
Release Tagging / release (pull_request) Successful in 2m29s
Rust Build / Check (pull_request) Successful in 3m42s
Rust Build / Test Suite (pull_request) Successful in 1m41s
Rust Build / Clippy (pull_request) Successful in 43s
Rust Build / Rustfmt (pull_request) Successful in 1m40s
Rust Build / build (pull_request) Successful in 41s
Reviewed-on: phoenix/textsender-models#22
2026-06-03 21:34:09 -04:00
phoenix 766d38ea0e Skipping serialization of fields in Contact (#20)
Release Tagging / release (push) Successful in 40s
Rust Build / Test Suite (push) Successful in 26s
Rust Build / Check (push) Successful in 1m28s
Rust Build / Rustfmt (push) Successful in 26s
Rust Build / Clippy (push) Successful in 40s
Rust Build / build (push) Successful in 1m11s
Reviewed-on: phoenix/textsender-models#20
2026-06-01 22:15:17 -04:00
phoenix 2be0337da0 User utoipa (#19)
Rust Build / Check (push) Successful in 36s
Rust Build / Rustfmt (push) Successful in 31s
Rust Build / Test Suite (push) Successful in 41s
Rust Build / build (push) Successful in 31s
Rust Build / Clippy (push) Successful in 45s
Release Tagging / release (push) Successful in 40s
Reviewed-on: phoenix/textsender-models#19
2026-05-31 17:48:09 -04:00
9 changed files with 59 additions and 25 deletions
Generated
+26 -1
View File
@@ -609,7 +609,7 @@ dependencies = [
[[package]]
name = "textsender_models"
version = "0.3.0"
version = "0.2.5"
dependencies = [
"const_format",
"dotenvy",
@@ -619,6 +619,7 @@ dependencies = [
"serde_json",
"tempfile",
"time",
"utoipa",
"uuid",
]
@@ -685,6 +686,30 @@ version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
[[package]]
name = "utoipa"
version = "5.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bde15df68e80b16c7d16b9616e80770ad158988daa56a27dccd1e55558b0160"
dependencies = [
"indexmap",
"serde",
"serde_json",
"utoipa-gen",
]
[[package]]
name = "utoipa-gen"
version = "5.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ba0b99ee52df3028635d93840c797102da61f8a7bb3cf751032455895b52ef8"
dependencies = [
"proc-macro2",
"quote",
"syn",
"uuid",
]
[[package]]
name = "uuid"
version = "1.23.1"
+2 -3
View File
@@ -1,10 +1,9 @@
[package]
name = "textsender_models"
version = "0.3.0"
version = "0.2.5"
edition = "2024"
rust-version = "1.95"
description = "models used for the textsender project"
# license = "MIT"
[dependencies]
serde = { version = "1.0.228", features = ["derive"] }
@@ -15,7 +14,7 @@ uuid = { version = "1.23.1", features = ["v4", "serde"] }
dotenvy = { version = "0.15.7" }
const_format = { version = "0.2.36" }
josekit = { version = "0.10.3" }
# utoipa = { version = "5.4.0", features = ["uuid", "time"] }
utoipa = { version = "5.4.0", features = ["uuid", "time"] }
[dev-dependencies]
tempfile = { version = "3.27.0" }
+1 -1
View File
@@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct TwilioConfig {
#[serde(alias = "auth_id")]
pub account_sid: uuid::Uuid,
pub account_sid: String,
#[serde(skip_serializing_if = "String::is_empty")]
pub service_sid: String,
#[serde(skip_serializing_if = "String::is_empty")]
+10 -5
View File
@@ -2,14 +2,19 @@ use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct Contact {
pub id: uuid::Uuid,
#[serde(skip_serializing_if = "crate::init::is_uuid_nil")]
pub id: Option<uuid::Uuid>,
// empty?
pub firstname: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub firstname: Option<String>,
// empty?
pub lastname: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub lastname: Option<String>,
// empty?
pub nickname: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub nickname: Option<String>,
pub phone_number: String,
// empty
pub user_id: uuid::Uuid,
#[serde(skip_serializing_if = "crate::init::is_uuid_nil")]
pub user_id: Option<uuid::Uuid>,
}
+5 -2
View File
@@ -6,7 +6,10 @@ pub mod token;
pub mod user;
pub mod init {
pub fn is_uuid_nil(uuid: &uuid::Uuid) -> bool {
uuid.is_nil()
pub fn is_uuid_nil(uuid: &Option<uuid::Uuid>) -> bool {
match uuid {
Some(id) => id.is_nil(),
None => true,
}
}
}
+5 -3
View File
@@ -3,9 +3,11 @@ pub mod scheduling;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct Message {
pub id: uuid::Uuid,
#[serde(skip_serializing_if = "crate::init::is_uuid_nil")]
pub id: Option<uuid::Uuid>,
pub content: String,
pub user_id: uuid::Uuid,
#[serde(skip_serializing_if = "crate::init::is_uuid_nil")]
pub user_id: Option<uuid::Uuid>,
}
+1 -1
View File
@@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct ScheduledMessageEvent {
id: uuid::Uuid,
contact_id: uuid::Uuid,
+2 -2
View File
@@ -12,7 +12,7 @@ pub struct Claims {
pub issued_at: i64,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct LoginResult {
pub user_id: uuid::Uuid,
pub access_token: String,
@@ -37,7 +37,7 @@ mod util {
}
}
#[derive(Debug)]
#[derive(Debug, utoipa::ToSchema)]
pub struct TokenResource {
pub message: String,
pub issuer: String,
+7 -7
View File
@@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct User {
pub id: uuid::Uuid,
pub phone_number: String,
@@ -18,7 +18,7 @@ pub struct User {
pub salt_id: uuid::Uuid,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct ServiceUser {
pub id: uuid::Uuid,
pub username: String,
@@ -32,7 +32,7 @@ pub struct ServiceUser {
pub salt_id: uuid::Uuid,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct Organization {
pub id: uuid::Uuid,
pub name: String,
@@ -40,7 +40,7 @@ pub struct Organization {
pub created: Option<time::OffsetDateTime>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct UserLoginHistory {
pub id: uuid::Uuid,
#[serde(with = "time::serde::rfc3339::option")]
@@ -48,7 +48,7 @@ pub struct UserLoginHistory {
pub user_id: uuid::Uuid,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct ServiceUserLoginHistory {
pub id: uuid::Uuid,
#[serde(with = "time::serde::rfc3339::option")]
@@ -56,7 +56,7 @@ pub struct ServiceUserLoginHistory {
pub service_user_id: uuid::Uuid,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct UserProfile {
pub user_id: uuid::Uuid,
pub phone_number: String,
@@ -71,7 +71,7 @@ pub struct UserProfile {
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct Salt {
#[serde(skip_serializing_if = "crate::init::is_uuid_nil")]
// #[serde(skip_serializing_if = "crate::init::is_uuid_nil")]
pub id: uuid::Uuid,
#[serde(skip_serializing_if = "String::is_empty")]
pub salt: String,