notra 0.1.1

Unofficial Rust SDK for the Notra API
Documentation
use serde::{Deserialize, Serialize};

use super::post::ContentType;

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PostGenerationJob {
    pub id: String,
    pub status: JobStatus,
    pub content_type: ContentType,
    pub source: JobSource,
    pub created_at: String,
    pub post_id: Option<String>,
    pub error_message: Option<String>,
    pub brand_identity_id: Option<String>,
    pub brand_voice_id: Option<String>,
    pub repository_ids: Option<Vec<String>>,
    pub workflow_run_id: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BrandIdentityJob {
    pub id: String,
    pub status: JobStatus,
    pub created_at: String,
    pub completed_at: Option<String>,
    pub current_step: Option<BrandIdentityStep>,
    pub error_message: Option<String>,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum JobStatus {
    Queued,
    Running,
    Completed,
    Failed,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum JobSource {
    Api,
    Dashboard,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum BrandIdentityStep {
    Scraping,
    Extracting,
    Saving,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobEvent {
    #[serde(rename = "type")]
    pub event_type: String,
    pub created_at: String,
}