#![forbid(unsafe_code, clippy::unwrap_used)]
#![allow(clippy::needless_return)]
#![warn(clippy::await_holding_lock, clippy::inefficient_to_string)]
use serde::{Deserialize, Serialize};
use trailbase_sqlvalue::SqlValue;
use ts_rs::TS;
#[derive(Clone, Debug, Deserialize, Serialize, TS)]
#[ts(export)]
pub struct SqliteRequest {
pub query: String,
pub params: Vec<SqlValue>,
}
#[derive(Clone, Debug, Deserialize, Serialize, TS)]
#[ts(export)]
pub enum SqliteResponse {
Query { rows: Vec<Vec<SqlValue>> },
Execute { rows_affected: usize },
Error(String),
TxBegin,
TxCommit,
TxRollback,
}
#[derive(Clone, Debug, Deserialize, Serialize, TS)]
#[ts(export)]
pub struct HttpContext {
pub kind: HttpContextKind,
pub registered_path: String,
pub path_params: Vec<(String, String)>,
pub user: Option<HttpContextUser>,
}
#[derive(Clone, Debug, Deserialize, Serialize, TS)]
pub enum HttpContextKind {
Http,
Job,
}
#[derive(Clone, Debug, Deserialize, Serialize, TS)]
pub struct HttpContextUser {
pub id: String,
pub email: String,
pub csrf_token: String,
}