use crate::error::IdValidationError;
crate::define_id!(McpSessionId, checked, |value| {
crate::macros::validate_non_empty("McpSessionId", value)
});
crate::define_id!(HookSessionId, checked, |value| {
crate::macros::validate_non_empty("HookSessionId", value)
});
crate::define_id!(CommsMessageId, checked, |value| {
crate::macros::validate_non_empty("CommsMessageId", value)
});
crate::define_id!(ElevatedJobId, uuid);
crate::define_id!(
DeploymentOrganizationUuid,
checked,
validate_deployment_organization_uuid
);
fn validate_deployment_organization_uuid(value: &str) -> Result<(), IdValidationError> {
let hyphenated = value.len() == 36 && value.bytes().filter(|&b| b == b'-').count() == 4;
if hyphenated && uuid::Uuid::try_parse(value).is_ok() {
return Ok(());
}
Err(IdValidationError::invalid(
"DeploymentOrganizationUuid",
"expected a hyphenated UUID",
))
}