swarmhive_api_types/
channel.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use utoipa::ToSchema;
4use uuid::Uuid;
5
6#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, ToSchema)]
12#[serde(rename_all = "kebab-case")]
13pub enum Channel {
14 Dev,
15 Beta,
16 Stable,
17 Custom(String),
18}
19
20#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
24pub struct ChannelView {
25 pub id: Uuid,
26 pub app_id: Uuid,
27 pub name: String,
28 pub is_default: bool,
29 pub created_at: DateTime<Utc>,
30 pub updated_at: DateTime<Utc>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
34pub struct CreateChannelRequest {
35 pub name: String,
36 #[serde(default)]
37 pub is_default: bool,
38}
39
40#[derive(Debug, Clone, Default, Serialize, Deserialize, ToSchema)]
41pub struct UpdateChannelRequest {
42 #[serde(default)]
43 pub name: Option<String>,
44 #[serde(default)]
45 pub is_default: Option<bool>,
46}