use std::path::PathBuf;
use crate::ids::{GroupId, SpecVersion};
use crate::model::entity::StoredEntity;
use crate::model::manual::Source;
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct ManualContract {
pub family: String,
pub version: SpecVersion,
pub groups: Vec<Group>,
pub companions: Vec<Companion>,
pub protocols: Vec<crate::model::ProtocolAttachment>,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Group {
pub id: GroupId,
pub dir: String,
pub title: String,
pub overview: Option<String>,
pub source: Option<Source>,
pub entities: Vec<StoredEntity>,
pub source_path: PathBuf,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Companion {
pub output_name: String,
pub bytes: Vec<u8>,
pub media_type: String,
pub title: String,
pub source_dir: String,
pub stem: String,
}