use jiff::Timestamp;
use serde::{Deserialize, Serialize};
use typed_builder::TypedBuilder;
use crate::transport::NodeId;
#[derive(TypedBuilder, Debug, Serialize, Deserialize)]
pub struct ImageTask {
pub prompt: String,
#[builder(default)]
pub node_id: Option<NodeId>,
#[builder(default)]
negative_prompt: Option<String>,
#[builder(default)]
size: Option<ImageSize>,
}
#[derive(Serialize, Deserialize)]
pub struct ImageResult {
pub data: String,
}
#[derive(Serialize, Deserialize)]
pub struct GeneratedImage {
url: Option<String>,
data: Option<Vec<u8>>,
format: ImageFormat,
width: u32,
height: u32,
seed: Option<u64>,
}
#[derive(Serialize, Deserialize)]
pub enum ImageFormat {
Png,
Jpeg,
Webp,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ImageSize {
width: u32,
height: u32,
}