Skip to main content

args_api/resource/
migration.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use uuid::Uuid;
4
5#[derive(ApiResource, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct GitHubAppInstallUrlResource {
7    pub install_url: String,
8}
9
10#[derive(ApiResource, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
11pub struct GitHubInstallationResource {
12    pub id: Uuid,
13    pub installation_id: i64,
14    pub owner_id: Uuid,
15    pub installation_type: String,
16    pub github_login: String,
17    pub created_at: DateTime<Utc>,
18}
19
20#[derive(ApiResource, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
21pub struct GitHubRepositoryResource {
22    pub id: u64,
23    pub name: String,
24    pub full_name: String,
25    pub description: Option<String>,
26    pub private: bool,
27    pub default_branch: String,
28    pub pushed_at: Option<DateTime<Utc>>,
29}
30
31#[derive(ApiResource, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
32pub struct MigrationResource {
33    pub id: Uuid,
34    pub number: i32,
35    pub author_id: Uuid,
36
37    pub origin_service: String,
38    pub origin: String,
39    pub origin_type: String,
40    pub destination: String,
41    pub destination_type: String,
42
43    pub status: String,
44    pub created_at: DateTime<Utc>,
45    pub updated_at: DateTime<Utc>,
46
47    pub repositories: Vec<MigrationRepositoryResource>,
48}
49
50#[derive(ApiResource, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
51pub struct MigrationRepositoryResource {
52    pub id: Uuid,
53
54    pub origin_full_name: String,
55    pub destination_full_name: String,
56    pub visibility: String,
57
58    pub status: String,
59    pub error: Option<String>,
60    pub created_at: DateTime<Utc>,
61    pub updated_at: DateTime<Utc>,
62}