forge/lib/models/src/phone.rs
Jacob Schmidt a8415eb1fd Add phone addon and wire UI events
- Introduce client phone addon, UI, and XEH handlers
- Route actor phone interaction to the new phone UI
- Add initial phone state, event handling, and persistence
2026-04-06 19:07:18 -05:00

49 lines
1.1 KiB
Rust

use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct PhoneMessage {
#[serde(default)]
pub id: String,
#[serde(default)]
pub from: String,
#[serde(default)]
pub to: String,
#[serde(default)]
pub message: String,
#[serde(default)]
pub timestamp: f64,
#[serde(default)]
pub read: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct PhoneEmail {
#[serde(default)]
pub id: String,
#[serde(default)]
pub from: String,
#[serde(default)]
pub to: String,
#[serde(default)]
pub subject: String,
#[serde(default)]
pub body: String,
#[serde(default)]
pub timestamp: f64,
#[serde(default)]
pub read: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct PhonePayload {
#[serde(default)]
pub contacts: Vec<String>,
#[serde(default)]
pub messages: Vec<PhoneMessage>,
#[serde(default)]
pub emails: Vec<PhoneEmail>,
}