Skip to main content

koprogo_api/domain/economie_circulaire/
mod.rs

1//! Contexte borné **économie circulaire** — ce que le logiciel ajoute à la loi.
2//!
3//! Mutualisation d'objets et de compétences, échanges locaux, réservation de
4//! ressources communes, achat groupé d'énergie, suivi de consommation. C'est
5//! l'augmentation du jumeau : le Code civil dit comment une copropriété se
6//! gouverne, pas comment elle mutualise.
7//!
8//! **Il a néanmoins ses propres autorités**, et c'est pourquoi il est un
9//! contexte à part entière plutôt qu'un fourre-tout produit :
10//!
11//! - l'achat groupé d'énergie et l'adhésion de non-copropriétaires relèvent
12//!   de l'article 22 de la directive RED II sur les communautés d'énergie
13//!   renouvelable (cf. `individual_member`) ;
14//! - la collecte de factures d'énergie relève du RGPD, articles 7.3 et 17
15//!   (cf. `energy_bill_upload`).
16//!
17//! Ce qui portait une obligation du Code civil en a été retiré :
18//! `contract_evaluation` a rejoint `copropriete`, l'évaluation annuelle des
19//! contrats étant une obligation du syndic (Art. 3.89 § 5, 12°).
20//!
21//! Dépend de `copropriete` : un échange, une réservation, une campagne ont
22//! lieu au sein d'une ACP et n'existent pas sans elle.
23
24pub mod achievement;
25pub mod challenge;
26pub mod contractor_evaluation;
27pub mod contractor_report;
28pub mod energy_bill_upload;
29pub mod energy_campaign;
30pub mod individual_member;
31pub mod iot_reading;
32pub mod linky_device;
33pub mod local_exchange;
34pub mod notice;
35pub mod resource_booking;
36pub mod service_provider;
37pub mod shared_object;
38pub mod skill;
39pub mod technical_spec;
40pub mod ticket;
41pub mod work_report;
42
43pub use achievement::{Achievement, AchievementCategory, AchievementTier, UserAchievement};
44pub use challenge::{Challenge, ChallengeProgress, ChallengeStatus, ChallengeType};
45pub use contractor_evaluation::{
46    ContractorEvaluation, EvaluationScores, MAX_COMMENT_LEN as CONTRACTOR_EVAL_MAX_COMMENT_LEN,
47    MAX_LINKED_TICKETS as CONTRACTOR_EVAL_MAX_LINKED_TICKETS,
48    MAX_SCORE as CONTRACTOR_EVAL_MAX_SCORE, MIN_COMMENT_LEN as CONTRACTOR_EVAL_MIN_COMMENT_LEN,
49    MIN_SCORE as CONTRACTOR_EVAL_MIN_SCORE,
50};
51pub use contractor_report::{ContractorReport, ContractorReportStatus, ReplacedPart};
52pub use energy_bill_upload::EnergyBillUpload;
53pub use energy_campaign::{
54    CampaignStatus, CampaignType, ContractType, EnergyCampaign, EnergyType, ProviderOffer,
55};
56pub use individual_member::IndividualMember;
57pub use iot_reading::{DeviceType, IoTReading, MetricType};
58pub use linky_device::{LinkyDevice, LinkyProvider};
59pub use local_exchange::{ExchangeStatus, ExchangeType, LocalExchange};
60pub use notice::{Notice, NoticeCategory, NoticeStatus, NoticeType};
61pub use resource_booking::{BookingStatus, RecurringPattern, ResourceBooking, ResourceType};
62pub use service_provider::{ServiceProvider, TradeCategory};
63pub use shared_object::{ObjectCondition, SharedObject, SharedObjectCategory};
64pub use skill::{ExpertiseLevel, Skill, SkillCategory};
65pub use technical_spec::{
66    SemVer, SignatoryRole, TechnicalSpec, TechnicalSpecSignature, TechnicalSpecStatus,
67    MAX_ATTACHMENTS as TECH_SPEC_MAX_ATTACHMENTS, MAX_DELIVERABLES as TECH_SPEC_MAX_DELIVERABLES,
68    MAX_DESCRIPTION_LEN as TECH_SPEC_MAX_DESCRIPTION_LEN,
69    MAX_REQUIRED_SIGNATURES as TECH_SPEC_MAX_REQUIRED_SIGNATURES,
70    MAX_TITLE_LEN as TECH_SPEC_MAX_TITLE_LEN, MIN_DESCRIPTION_LEN as TECH_SPEC_MIN_DESCRIPTION_LEN,
71    MIN_TITLE_LEN as TECH_SPEC_MIN_TITLE_LEN,
72};
73pub use ticket::{
74    Ticket, TicketCategory, TicketKind, TicketPriority, TicketSeverity, TicketStatus,
75    MAX_EVIDENCE_ATTACHMENTS, MAX_WITNESSES, TICKET_EDIT_WINDOW_MINUTES,
76};
77pub use work_report::{WarrantyType, WorkReport, WorkReportError, WorkType};