@@ -21,8 +21,8 @@ class TransportationEntry(CARBON_MODEL):
2121 motorbike : int
2222 electric_car : int
2323 gasoline_car : int
24- fuel_efficieny : float
25- metric_threshold = 200 / 3
24+ fuel_efficiency : float
25+ metric_threshold = 200 / 3
2626
2727 def __init__ (self , oid : ObjectId , user_id : ObjectId , carbon_emissions : int , date : Union [str , datetime ],
2828 bus : int , train : int , motorbike : int , electric_car : int , gasoline_car : int , fuel_efficiency : float ) -> None :
@@ -67,14 +67,14 @@ def calculate_carbon_emissions(self) -> int:
6767 bus_carbon_emissions = self .bus * 0.103
6868 train_carbon_emissions = self .train * 0.037
6969 motorbike_carbon_emissions = self .motorbike * 0.113
70- electric_car_carbon_emissions = ((self .fuel_efficiency * 8.9 * 0.4 )/ 100 ) * self .electric_car
71- gasoline_car_carbon_emissions = ((self .fuel_efficiency * 2.3 )/ 100 ) * self .gasoline_car
70+ electric_car_carbon_emissions = ((self .fuel_efficiency * 8.9 * 0.4 ) / 100 ) * self .electric_car
71+ gasoline_car_carbon_emissions = ((self .fuel_efficiency * 2.3 ) / 100 ) * self .gasoline_car
7272 return int (sum ([bus_carbon_emissions , train_carbon_emissions , motorbike_carbon_emissions ,
7373 electric_car_carbon_emissions , gasoline_car_carbon_emissions ]))
7474
7575 def __repr__ (self ) -> str :
7676 return f"Transportation ID: { self .oid .__str__ ()} "
77-
77+
7878
7979class TransportationEntryRecommendation (DB_MODEL ):
8080 bus_recommendation : str
@@ -84,14 +84,14 @@ class TransportationEntryRecommendation(DB_MODEL):
8484 gasoline_car_recommendation : str
8585 metric_threshold : int
8686
87- def __init__ (self , bus_recommendation : str , train_recommendation : str , motorbike_recommendation : str ,
87+ def __init__ (self , bus_recommendation : str , train_recommendation : str , motorbike_recommendation : str ,
8888 electric_car_recommendation : str , gasoline_car_recommendation : str ) -> None :
89+ super ().__init__ (ObjectId ())
8990 self .bus_recommendation = bus_recommendation
9091 self .train_recommendation = train_recommendation
9192 self .motorbike_recommendation = motorbike_recommendation
9293 self .electric_car_recommendation = electric_car_recommendation
9394 self .gasoline_car_recommendation = gasoline_car_recommendation
94-
9595
9696 def to_json (self ) -> json :
9797 return {
@@ -103,18 +103,18 @@ def to_json(self) -> json:
103103 }
104104
105105 @staticmethod
106- def from_json (doc : json ) -> TransportationEntry :
107- return TransportationEntry (
106+ def from_json (doc : json ) -> TransportationEntryRecommendation :
107+ return TransportationEntryRecommendation (
108108 bus_recommendation = doc ["bus_recommendation" ],
109109 train_recommendation = doc ["train_recommendation" ],
110110 motorbike_recommendation = doc ["motorbike_recommendation" ],
111111 electric_car_recommendation = doc ["electric_car_recommendation" ],
112112 gasoline_car_recommendation = doc ["gasoline_car_recommendation" ]
113113 )
114-
114+
115115 @staticmethod
116116 def from_transportation_entry (transportation_entry : TransportationEntry ) -> TransportationEntryRecommendation :
117- submetric_threshold = TransportationEntry .metric_threshold / 5
117+ submetric_threshold = TransportationEntry .metric_threshold / 5
118118 bus_recommendation = "Bus emissions look good!"
119119 train_recommendation = "Train emissions look good!"
120120 motorbike_recommendation = "Motorbike emissions look good!"
@@ -124,15 +124,15 @@ def from_transportation_entry(transportation_entry: TransportationEntry) -> Tran
124124 bus_carbon_emissions = transportation_entry .bus * 0.103
125125 train_carbon_emissions = transportation_entry .train * 0.037
126126 motorbike_carbon_emissions = transportation_entry .motorbike * 0.113
127- electric_car_carbon_emissions = ((transportation_entry .fuel_efficiency * 8.9 * 0.4 )/ 100 ) * transportation_entry .electric_car
128- gasoline_car_carbon_emissions = ((transportation_entry .fuel_efficiency * 2.3 )/ 100 ) * transportation_entry .gasoline_car
127+ electric_car_carbon_emissions = ((transportation_entry .fuel_efficiency * 8.9 * 0.4 ) / 100 ) * transportation_entry .electric_car
128+ gasoline_car_carbon_emissions = ((transportation_entry .fuel_efficiency * 2.3 ) / 100 ) * transportation_entry .gasoline_car
129129
130130 if bus_carbon_emissions > submetric_threshold :
131131 bus_recommendation = "Bus emissions too high"
132132
133133 if train_carbon_emissions > submetric_threshold :
134134 train_recommendation = "Train emissions too high"
135-
135+
136136 if motorbike_carbon_emissions > submetric_threshold :
137137 motorbike_recommendation = "Motorbike emissions too high"
138138
@@ -142,11 +142,8 @@ def from_transportation_entry(transportation_entry: TransportationEntry) -> Tran
142142 if gasoline_car_carbon_emissions > submetric_threshold :
143143 gasoline_car_recommendation = "Gasoline car emissions too high"
144144
145-
146- return TransportationEntryRecommendation (bus_recommendation , train_recommendation ,
145+ return TransportationEntryRecommendation (bus_recommendation , train_recommendation ,
147146 motorbike_recommendation , electric_car_recommendation , gasoline_car_recommendation )
148147
149-
150148 def __repr__ (self ) -> str :
151149 return f"Transportation ID: { self .oid .__str__ ()} "
152-
0 commit comments