database_replicator/remote/
models.rs1use serde::{Deserialize, Serialize};
5use std::collections::HashMap;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct JobSpec {
9 #[serde(rename = "schema_version")]
10 pub version: String,
11 pub command: String, pub source_url: String,
13 pub target_url: String,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub filter: Option<FilterSpec>,
16 pub options: HashMap<String, serde_json::Value>,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct FilterSpec {
21 pub include_databases: Option<Vec<String>>,
22 pub exclude_tables: Option<Vec<String>>,
23}
24
25#[derive(Debug, Clone, Deserialize)]
26pub struct JobResponse {
27 pub job_id: String,
28 pub status: String,
29}
30
31#[derive(Debug, Clone, Deserialize)]
32pub struct JobStatus {
33 pub job_id: String,
34 pub status: String, pub created_at: Option<String>,
36 pub started_at: Option<String>,
37 pub completed_at: Option<String>,
38 pub progress: Option<ProgressInfo>,
39 pub error: Option<String>,
40}
41
42#[derive(Debug, Clone, Deserialize)]
43pub struct ProgressInfo {
44 pub current_database: Option<String>,
45 pub databases_completed: usize,
46 pub databases_total: usize,
47 pub message: Option<String>,
48}