use serde::{Deserialize, Serialize};
use wakflo_common::{
plugin::{PluginCompiler, PluginLanguage},
TaskPlatform, TaskType,
};
#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug)]
pub struct PluginMetadata {
pub language: PluginLanguage,
pub compiler: PluginCompiler,
}
#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug, Default)]
pub struct TaskProperties {
pub input: serde_json::Value,
pub output: serde_json::Value,
pub authentication: Option<serde_json::Value>,
}
#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug)]
pub struct Task {
pub id: String,
pub name: String,
pub display_name: String,
pub description: String,
pub documentation: Option<String>,
pub task_type: TaskType,
pub platform: TaskPlatform,
pub namespace: Option<String>,
pub category_id: Option<String>,
pub properties: TaskProperties,
pub version: String,
pub icon: String,
pub published: bool,
pub approved: bool,
pub created_at: chrono::DateTime<chrono::FixedOffset>,
pub updated_at: chrono::DateTime<chrono::FixedOffset>,
pub metadata: Option<PluginMetadata>,
}