ddex_builder/messages/mod.rs
1//! # DDEX Message Types
2//!
3//! This module contains implementations for various DDEX message types
4//! used in music distribution workflows. The DDEX standard defines several
5//! message types for different scenarios in the music supply chain.
6//!
7//! ## Message Types
8//!
9//! - **NewReleaseMessage (ERN)**: The primary message type for delivering
10//! new releases to music platforms and distributors
11//! - **UpdateReleaseMessage**: Used to update existing releases with new
12//! metadata, resources, or deal information
13//! - **PurgeReleaseMessage**: For removing releases from distribution
14//!
15//! ## Architecture
16//!
17//! ```text
18//! Message Types
19//! ├── NewReleaseMessage # Primary release delivery
20//! │ ├── MessageHeader # Routing and control info
21//! │ ├── ResourceList # Audio/video resources
22//! │ ├── ReleaseList # Release metadata
23//! │ └── DealList # Distribution terms
24//! └── UpdateReleaseMessage # Release updates
25//! ├── MessageHeader # Update control info
26//! ├── UpdateList # What to update
27//! └── Instructions # How to apply updates
28//! ```
29//!
30//! ## Usage Example
31//!
32//! ```rust
33//! use ddex_builder::messages::*;
34//! use ddex_builder::{Builder, BuildRequest};
35//!
36//! // Create a new release message
37//! let mut builder = Builder::new();
38//! let request = BuildRequest {
39//! message_type: MessageType::NewRelease,
40//! // ... other fields
41//! };
42//!
43//! let result = builder.build_internal(&request)?;
44//! ```
45//!
46//! ## Message Validation
47//!
48//! All message types include:
49//! - Schema validation against DDEX XSD
50//! - Business rule validation
51//! - Territory and rights validation
52//! - Resource reference integrity checks
53
54pub mod update_release;
55
56pub use update_release::*;