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_databases: Option<Vec<String>>,
23 pub include_tables: Option<Vec<String>>,
24 pub exclude_tables: Option<Vec<String>>,
25}
26
27#[derive(Debug, Clone, Deserialize)]
28pub struct JobResponse {
29 pub job_id: String,
30 pub status: String,
31}
32
33#[derive(Debug, Clone, Deserialize)]
34pub struct JobStatus {
35 pub job_id: String,
36 pub status: String, pub created_at: Option<String>,
38 pub started_at: Option<String>,
39 pub completed_at: Option<String>,
40 pub progress: Option<ProgressInfo>,
41 pub error: Option<String>,
42}
43
44#[derive(Debug, Clone, Deserialize)]
45pub struct ProgressInfo {
46 pub current_database: Option<String>,
47 pub databases_completed: usize,
48 pub databases_total: usize,
49 pub message: Option<String>,
50}