args_api/resource/
organization.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use uuid::Uuid;
4
5use crate::resource::common::OrganizationRole;
6
7#[derive(ApiResource, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub struct OrganizationResource {
9 pub id: Uuid,
10 pub name: String,
11
12 pub display_name: Option<String>,
13 pub location: Option<String>,
14 pub readme: Option<String>,
15 pub links: Vec<String>,
16
17 pub created_at: DateTime<Utc>,
18 pub image_updated_at: DateTime<Utc>,
19
20 pub user_role: OrganizationRole,
22 pub members: Option<Vec<OrganizationMemberResource>>,
23}
24
25#[derive(ApiResource, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
26pub struct OrganizationMemberResource {
27 pub id: Uuid,
28 pub user_id: Uuid,
29 pub user_name: String,
30
31 pub role: OrganizationRole,
32 pub role_description: Option<String>,
33
34 pub created_at: DateTime<Utc>,
35 pub image_updated_at: DateTime<Utc>,
36}