bo4e_core/com/
mod.rs

1//! Components (COMs) - composite types used within Business Objects.
2//!
3//! Components are reusable data structures that appear within multiple
4//! Business Objects. Unlike BOs, they cannot exist independently.
5//!
6//! # Epic 3.1: Address & Contact Components
7//!
8//! This module contains address, contact, and person-related components:
9//!
10//! - [`Address`] - Physical or postal address
11//! - [`GeoCoordinates`] - Geographic coordinates (latitude/longitude)
12//! - [`CadastralAddress`] - Cadastral/land registry address
13//! - [`ContactMethod`] - Contact method (email, phone, etc.)
14//! - [`Signature`] - Digital signature for contracts/offers
15//! - [`ExternalReference`] - Reference to external systems
16//! - [`Responsibility`] - Area of responsibility for a contact
17//! - [`Hardware`] - Hardware component information
18//! - [`OfferPosition`] - Position within an offer
19//! - [`OfferPart`] - Part of an offer variant
20//! - [`OfferVariant`] - Variant of an offer
21//! - [`ContractPart`] - Part of a contract
22//! - [`ContractConditions`] - Contract conditions
23//! - [`InvoicePosition`] - Position within an invoice
24//! - [`RegionCriterion`] - Regional criterion for delimitation
25//!
26//! # Epic 3.2: Pricing & Cost Components
27//!
28//! Pricing, cost, and tariff-related components:
29//!
30//! - [`Price`] - A price with value and unit
31//! - [`Amount`] - Monetary amount
32//! - [`PriceTier`] - Price tier/bracket
33//! - [`PricePosition`] - Position in a price sheet
34//! - [`TariffPrice`] - Tariff price
35//! - [`TariffPricePosition`] - Tariff price position
36//! - [`RegionalPriceTier`] - Regional price tier
37//! - [`Surcharge`] - Surcharge or discount
38//! - [`SurchargePerLocation`] - Surcharge per location
39//! - [`RegionalSurcharge`] - Regional surcharge
40//! - [`PositionSurcharge`] - Position-specific surcharge
41//! - [`TaxAmount`] - Tax amount
42//! - [`CostBlock`] - Block of costs
43//! - [`CostPosition`] - Cost position
44//! - [`ExternalCostBlock`] - External cost block
45//! - [`ExternalCostPosition`] - External cost position
46//! - [`TariffCalculationParameter`] - Tariff calculation parameters
47//! - [`TariffRestriction`] - Tariff restriction
48//! - [`PriceGuarantee`] - Price guarantee
49//! - [`EnergySource`] - Energy source/origin
50//! - [`EnergyMix`] - Energy mix composition
51//! - [`Consumption`] - Consumption data
52//! - [`ConsumedQuantity`] - Consumed quantity
53//! - [`ConcessionFee`] - Concession fee
54//! - [`NetworkCharge`] - Network charge
55//! - [`Levy`] - Levy (EEG, KWK, etc.)
56//! - [`Bonus`] - Bonus/incentive
57//! - [`Discount`] - Discount
58//! - [`MarginPrice`] - Margin price
59//! - [`ServicePrice`] - Service price
60//!
61//! # Epic 3.3: Measurement & Time Components
62//!
63//! Measurement, quantity, and time-related components:
64//!
65//! - [`TimePeriod`] - A time period with start and end timestamps
66//! - [`MeasuredValue`] - A measured value at a specific timestamp
67//! - [`Quantity`] - A quantity with value and unit
68//! - [`MeterRegister`] - A register on a meter
69//! - [`TimeOfUseRegister`] - Time-of-use register
70//! - [`MeterReading`] - Meter reading at a point in time
71//! - [`LoadProfileValue`] - Load profile value
72//! - [`TimeSeriesValue`] - Time series value
73//! - [`Interval`] - Time interval with duration and unit
74//! - [`DateRange`] - Date range with start and end dates
75//! - [`SeasonalTariff`] - Seasonal tariff period
76//! - [`BillingPeriodData`] - Billing period data
77//! - [`MeteringPointStatus`] - Metering point status
78//! - [`ValidationResult`] - Validation result
79//! - [`QualityIndicator`] - Quality indicator for measured data
80//! - [`SubstitutionValue`] - Substituted/replacement value
81//! - [`AggregatedValue`] - Aggregated value
82//! - [`ProfileData`] - Profile data (standard load profiles)
83//! - [`LoadCurveData`] - Load curve data
84
85// Epic 3.1: Address & Contact Components
86mod address;
87mod cadastral_address;
88mod contact_method;
89mod contract_conditions;
90mod contract_part;
91mod external_reference;
92mod geo_coordinates;
93mod hardware;
94mod invoice_position;
95mod offer_part;
96mod offer_position;
97mod offer_variant;
98mod region_criterion;
99mod responsibility;
100mod signature;
101
102// Epic 3.2: Pricing & Cost Components
103mod amount;
104mod bonus;
105mod concession_fee;
106mod consumed_quantity;
107mod consumption;
108mod cost_block;
109mod cost_position;
110mod discount;
111mod energy_mix;
112mod energy_source;
113mod external_cost_block;
114mod external_cost_position;
115mod levy;
116mod margin_price;
117mod network_charge;
118mod position_surcharge;
119mod price;
120mod price_guarantee;
121mod price_position;
122mod price_tier;
123mod regional_price_tier;
124mod regional_surcharge;
125mod service_price;
126mod surcharge;
127mod surcharge_per_location;
128mod tariff_calculation_parameter;
129mod tariff_price;
130mod tariff_price_position;
131mod tariff_restriction;
132mod tax_amount;
133
134// Epic 3.3: Measurement & Time Components
135mod aggregated_value;
136mod billing_period_data;
137mod date_range;
138mod interval;
139mod load_curve_data;
140mod load_profile_value;
141mod measured_value;
142mod meter_reading;
143mod meter_register;
144mod metering_point_status;
145mod profile_data;
146mod quality_indicator;
147mod quantity;
148mod seasonal_tariff;
149mod substitution_value;
150mod time_of_use_register;
151mod time_period;
152mod time_series_value;
153mod validation_result;
154
155// Epic 3.1 exports
156pub use address::Address;
157pub use cadastral_address::CadastralAddress;
158pub use contact_method::ContactMethod;
159pub use contract_conditions::ContractConditions;
160pub use contract_part::ContractPart;
161pub use external_reference::ExternalReference;
162pub use geo_coordinates::GeoCoordinates;
163pub use hardware::Hardware;
164pub use invoice_position::InvoicePosition;
165pub use offer_part::OfferPart;
166pub use offer_position::OfferPosition;
167pub use offer_variant::OfferVariant;
168pub use region_criterion::RegionCriterion;
169pub use responsibility::Responsibility;
170pub use signature::Signature;
171
172// Epic 3.2 exports
173pub use amount::Amount;
174pub use bonus::Bonus;
175pub use concession_fee::ConcessionFee;
176pub use consumed_quantity::ConsumedQuantity;
177pub use consumption::Consumption;
178pub use cost_block::CostBlock;
179pub use cost_position::CostPosition;
180pub use discount::Discount;
181pub use energy_mix::EnergyMix;
182pub use energy_source::EnergySource;
183pub use external_cost_block::ExternalCostBlock;
184pub use external_cost_position::ExternalCostPosition;
185pub use levy::Levy;
186pub use margin_price::MarginPrice;
187pub use network_charge::NetworkCharge;
188pub use position_surcharge::PositionSurcharge;
189pub use price::Price;
190pub use price_guarantee::PriceGuarantee;
191pub use price_position::PricePosition;
192pub use price_tier::PriceTier;
193pub use regional_price_tier::RegionalPriceTier;
194pub use regional_surcharge::RegionalSurcharge;
195pub use service_price::ServicePrice;
196pub use surcharge::Surcharge;
197pub use surcharge_per_location::SurchargePerLocation;
198pub use tariff_calculation_parameter::TariffCalculationParameter;
199pub use tariff_price::TariffPrice;
200pub use tariff_price_position::TariffPricePosition;
201pub use tariff_restriction::TariffRestriction;
202pub use tax_amount::TaxAmount;
203
204// Epic 3.3 exports
205pub use aggregated_value::AggregatedValue;
206pub use billing_period_data::BillingPeriodData;
207pub use date_range::DateRange;
208pub use interval::Interval;
209pub use load_curve_data::LoadCurveData;
210pub use load_profile_value::LoadProfileValue;
211pub use measured_value::MeasuredValue;
212pub use meter_reading::MeterReading;
213pub use meter_register::MeterRegister;
214pub use metering_point_status::MeteringPointStatus;
215pub use profile_data::ProfileData;
216pub use quality_indicator::QualityIndicator;
217pub use quantity::Quantity;
218pub use seasonal_tariff::SeasonalTariff;
219pub use substitution_value::SubstitutionValue;
220pub use time_of_use_register::TimeOfUseRegister;
221pub use time_period::TimePeriod;
222pub use time_series_value::TimeSeriesValue;
223pub use validation_result::ValidationResult;