sparktest_core/
models.rs

1use serde::{Deserialize, Serialize};
2use uuid::Uuid;
3use chrono::{DateTime, Utc};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct TestRun {
7    pub id: Uuid,
8    pub name: String,
9    pub image: String,
10    pub commands: Vec<String>,
11    pub status: String,
12    pub created_at: DateTime<Utc>,
13    pub definition_id: Option<Uuid>,
14    pub executor_id: Option<String>,
15    pub suite_id: Option<Uuid>,
16    pub variables: Option<serde_json::Value>,
17    pub artifacts: Option<Vec<String>>,
18    pub duration: Option<i32>,
19    pub retries: Option<i32>,
20    pub logs: Option<Vec<String>>,
21    pub k8s_job_name: Option<String>,
22    pub pod_scheduled: Option<DateTime<Utc>>,
23    pub container_created: Option<DateTime<Utc>>,
24    pub container_started: Option<DateTime<Utc>>,
25    pub completed: Option<DateTime<Utc>>,
26    pub failed: Option<DateTime<Utc>>,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct TestDefinition {
31    pub id: Uuid,
32    pub name: String,
33    pub description: String,
34    pub image: String,
35    pub commands: Vec<String>,
36    pub created_at: DateTime<Utc>,
37    pub executor_id: Option<String>,
38    pub variables: Option<serde_json::Value>,
39    pub labels: Option<Vec<String>>,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
43pub struct Executor {
44    pub id: String,
45    pub name: String,
46    pub image: String,
47    pub description: Option<String>,
48    pub command: Option<Vec<String>>,
49    pub supported_file_types: Option<Vec<String>>,
50    pub env: Option<serde_json::Value>,
51    pub created_at: DateTime<Utc>,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct TestSuite {
56    pub id: Uuid,
57    pub name: String,
58    pub description: String,
59    pub test_definition_ids: Vec<Uuid>,
60    pub created_at: DateTime<Utc>,
61    pub execution_mode: String,
62    pub labels: Option<Vec<String>>,
63}