pub struct EnergyCampaign {Show 22 fields
pub id: Uuid,
pub organization_id: Uuid,
pub building_id: Option<Uuid>,
pub campaign_name: String,
pub campaign_type: CampaignType,
pub status: CampaignStatus,
pub deadline_participation: DateTime<Utc>,
pub deadline_vote: Option<DateTime<Utc>>,
pub contract_start_date: Option<DateTime<Utc>>,
pub energy_types: Vec<EnergyType>,
pub contract_duration_months: i32,
pub contract_type: ContractType,
pub total_participants: i32,
pub total_kwh_electricity: Option<f64>,
pub total_kwh_gas: Option<f64>,
pub avg_kwh_per_unit: Option<f64>,
pub offers_received: Vec<ProviderOffer>,
pub selected_offer_id: Option<Uuid>,
pub estimated_savings_pct: Option<f64>,
pub created_by: Uuid,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Campagne d’achat groupé d’énergie
Fields§
§id: Uuid§organization_id: Uuid§building_id: Option<Uuid>§campaign_name: String§campaign_type: CampaignType§status: CampaignStatus§deadline_participation: DateTime<Utc>§deadline_vote: Option<DateTime<Utc>>§contract_start_date: Option<DateTime<Utc>>§energy_types: Vec<EnergyType>§contract_duration_months: i32§contract_type: ContractType§total_participants: i32§total_kwh_electricity: Option<f64>§total_kwh_gas: Option<f64>§avg_kwh_per_unit: Option<f64>§offers_received: Vec<ProviderOffer>§selected_offer_id: Option<Uuid>§estimated_savings_pct: Option<f64>§created_by: Uuid§created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl EnergyCampaign
impl EnergyCampaign
Sourcepub fn new(
organization_id: Uuid,
building_id: Option<Uuid>,
campaign_name: String,
deadline_participation: DateTime<Utc>,
energy_types: Vec<EnergyType>,
created_by: Uuid,
) -> Result<Self, String>
pub fn new( organization_id: Uuid, building_id: Option<Uuid>, campaign_name: String, deadline_participation: DateTime<Utc>, energy_types: Vec<EnergyType>, created_by: Uuid, ) -> Result<Self, String>
Créer nouvelle campagne
Sourcepub fn start_data_collection(&mut self) -> Result<(), String>
pub fn start_data_collection(&mut self) -> Result<(), String>
Lancer collecte données (après vote AG)
Sourcepub fn participation_rate(&self, total_units: i32) -> f64
pub fn participation_rate(&self, total_units: i32) -> f64
Calculer taux de participation
Sourcepub fn can_negotiate(&self, total_units: i32) -> bool
pub fn can_negotiate(&self, total_units: i32) -> bool
Vérifier si éligible négociation (min 60% participation)
Sourcepub fn add_offer(&mut self, offer: ProviderOffer) -> Result<(), String>
pub fn add_offer(&mut self, offer: ProviderOffer) -> Result<(), String>
Ajouter une offre fournisseur
Trait Implementations§
Source§impl Clone for EnergyCampaign
impl Clone for EnergyCampaign
Source§fn clone(&self) -> EnergyCampaign
fn clone(&self) -> EnergyCampaign
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for EnergyCampaign
impl Debug for EnergyCampaign
Source§impl<'de> Deserialize<'de> for EnergyCampaign
impl<'de> Deserialize<'de> for EnergyCampaign
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<EnergyCampaign> for EnergyCampaignResponse
impl From<EnergyCampaign> for EnergyCampaignResponse
Source§fn from(campaign: EnergyCampaign) -> Self
fn from(campaign: EnergyCampaign) -> Self
Converts to this type from the input type.
Source§impl PartialEq for EnergyCampaign
impl PartialEq for EnergyCampaign
Source§impl Serialize for EnergyCampaign
impl Serialize for EnergyCampaign
impl StructuralPartialEq for EnergyCampaign
Auto Trait Implementations§
impl Freeze for EnergyCampaign
impl RefUnwindSafe for EnergyCampaign
impl Send for EnergyCampaign
impl Sync for EnergyCampaign
impl Unpin for EnergyCampaign
impl UnwindSafe for EnergyCampaign
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Chain<T> for T
impl<T> Chain<T> for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Fake for T
impl<T> Fake for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.