use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct Action { pub id: String, pub chain_id: Option, pub sequence: i64, pub description: String, pub command: String, pub run_as: Option, pub status: String, pub result: Option, pub approve_token: String, pub submitted_at: String, pub resolved_at: Option, } #[derive(Debug, Deserialize)] pub struct SubmitAction { pub description: String, pub command: String, pub chain_id: Option, pub sequence: Option, /// Who to run the command as: "oc", "openclaw", "root", or omit for service user pub run_as: Option, } #[allow(dead_code)] #[derive(Debug, Serialize)] pub struct ActionResult { pub id: String, pub status: String, pub result: Option, } #[derive(Debug, Deserialize)] pub struct LoginForm { pub username: String, pub password: String, }