From 007dca7bfb0d5bfa6ba9e5d27aacec6ca8cfbfe8 Mon Sep 17 00:00:00 2001 From: Edwin Eames Date: Tue, 16 Jul 2024 10:30:09 -0400 Subject: [PATCH] Updated --- app/models/auto.py | 36 ++++++++++++++++++++----- app/routers/main.py | 66 ++++++++++++++++++++++++--------------------- 2 files changed, 64 insertions(+), 38 deletions(-) diff --git a/app/models/auto.py b/app/models/auto.py index c7a8d40..e5870cf 100644 --- a/app/models/auto.py +++ b/app/models/auto.py @@ -1,10 +1,32 @@ -from sqlalchemy import Column, Integer,\ - DECIMAL, Text,\ - VARCHAR, TIMESTAMP, Date, INTEGER +from sqlalchemy import (Column, Integer, + DECIMAL, Text, + VARCHAR, TIMESTAMP, Date, INTEGER) from datetime import datetime, timezone from database import Base + + +# class Auto_Customer(Base): +# __tablename__ = 'auto_customer' + +# id = Column(Integer, +# primary_key=True, +# autoincrement=True, +# unique=False) +# customer_id = Column(INTEGER()) +# customer_full_name = Column(VARCHAR(250)) +# last_fill = Column(TIMESTAMP(), default=datetime.utcnow()) +# last_updated = Column(TIMESTAMP(), default=datetime.utcnow()) +# estimated_gallons_left = Column(INTEGER) +# estimated_gallons_left_prev_day = Column(INTEGER) +# tank_height = Column(VARCHAR(25)) +# tank_size = Column(VARCHAR(25)) +# house_factor = Column(DECIMAL(5, 2)) + + + + class Auto_Temp(Base): __tablename__ = 'auto_temp' @@ -14,10 +36,10 @@ class Auto_Temp(Base): unique=False) todays_date = Column(TIMESTAMP(), default=datetime.utcnow()) - temp = Column(DECIMAL(50, 2)) - temp_max = Column(DECIMAL(50, 2)) - temp_min = Column(DECIMAL(50, 2)) - temp_avg = Column(DECIMAL(50, 2)) + temp = Column(DECIMAL(5, 2)) + temp_max = Column(DECIMAL(5, 2)) + temp_min = Column(DECIMAL(5, 2)) + temp_avg = Column(DECIMAL(5, 2)) degree_day = Column(INTEGER()) diff --git a/app/routers/main.py b/app/routers/main.py index 7c37b1d..80ff661 100644 --- a/app/routers/main.py +++ b/app/routers/main.py @@ -14,11 +14,8 @@ router = APIRouter( -def Average(lst): - return sum(lst) / len(lst) - @router.route("/update", methods=["GET"]) -def update_auto(): +def update_auto_customers(): today_temp = session\ @@ -33,8 +30,34 @@ def update_auto(): .limit(25) for f in auto_customers: - pass + # figure out how much temperature effects oil + if today_temp >= 60: + use_day = 1 + elif 40 >= today_temp >= 59: + use_day = 3 + elif 30 >= today_temp >= 39: + use_day = 5 + elif 0 >= today_temp >= 29: + use_day = 7 + elif -20 >= today_temp >= -1: + use_day = 10 + else: + use_day = 0 + + # times temp factory by house factor + gallon_use_today = f.house_factor * use_day + + # get estimated gallons left + get_gallons_left = f.estimated_gallons_left_prev_day - gallon_use_today + + # get previous day gallons left + f.estimated_gallons_left_prev_day = f.estimated_gallons_left + gallon_use_today + + f.estimated_gallons_left = get_gallons_left + + session.add(f) + session.commit() return ({"ok": True}), 200 @@ -52,13 +75,13 @@ def update_temp(): observation = mgr.weather_at_place('Worcester, US') w = observation.weather - temp_dict_kelvin = w.temperature() # a dict in Kelvin units (default when no temperature units provided) - temp_dict_kelvin['temp_min'] - temp_dict_kelvin['temp_max'] + temp_dict_fahrenheit = w.temperature() # a dict in Kelvin units (default when no temperature units provided) + temp_dict_fahrenheit['temp_min'] + temp_dict_fahrenheit['temp_max'] temp_dict_fahrenheit = w.temperature('fahrenheit') - low_temp = temp_dict_kelvin['temp_min'] - high_temp = temp_dict_kelvin['temp_max'] + low_temp = temp_dict_fahrenheit['temp_min'] + high_temp = temp_dict_fahrenheit['temp_max'] temps.append(temp_dict_fahrenheit['temp_max']) temps.append(temp_dict_fahrenheit['temp_min']) @@ -66,7 +89,6 @@ def update_temp(): rounded_temp = round(get_avg) dday = (65 - ((low_temp + high_temp) /2)) - add_new_temp = Auto_Temp( temp = temp_dict_fahrenheit['temp'], @@ -83,25 +105,7 @@ def update_temp(): return ({"ok": True}), 200 -@router.get("/today") -def auto_today(): - today_auto = session.query().filter().first() - - return ({"ok": True}), 200 +def Average(lst): + return sum(lst) / len(lst) -@router.get("/week") -def auto_this_week(): - print("here") - return ({"ok": True}), 200 - - - -@router.get("/all") -def all_auto(): - return ({"ok": True}), 200 - - -@router.get("/completed") -def completed_auto(): - return ({"ok": True}), 200 \ No newline at end of file