args_api/resource/
migration.rs1use 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}