use crate::ids::{BundleId, DeploymentId, RevisionId};
use crate::version::SchemaVersion;
use greentic_types::EnvId;
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct RevisionRuntimeBlock {
pub deployment_id: DeploymentId,
pub revision_id: RevisionId,
pub bundle_id: BundleId,
#[serde(default)]
pub pack_list_refs: Vec<PathBuf>,
#[serde(default)]
pub pack_config_refs: Vec<PathBuf>,
pub weight_bps: u32,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct RuntimeConfig {
pub schema: SchemaVersion,
pub env_id: EnvId,
pub revisions: Vec<RevisionRuntimeBlock>,
}
impl RuntimeConfig {
pub fn schema_str() -> &'static str {
SchemaVersion::RUNTIME_CONFIG_V1
}
}