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::*;