from flask import jsonify from decimal import Decimal from app.info import info from app import db from app.classes.pricing import Pricing_Oil_Oil, Pricing_Oil_Oil_schema from app.classes.admin import Admin_Company @info.route("/price/oil/tiers", methods=["GET"]) def get_pricing_tiers(): get_price_query = (db.session .query(Pricing_Oil_Oil) .order_by(Pricing_Oil_Oil.date.desc()) .first()) if not get_price_query: return jsonify({"error": "No pricing data available"}), 404 # Get the single price per gallon from the database, e.g., Decimal('2.92') price_per_gallon = get_price_query.price_for_customer # Define the specific gallon amounts you want to display totals for gallon_tiers = [100, 125, 150, 175, 200, 220] # Calculate the total price for each gallon amount by multiplication pricing_totals = { gallons: price_per_gallon * gallons for gallons in gallon_tiers } # Return the dictionary of totals return jsonify(pricing_totals) @info.route("/price/oil", methods=["GET"]) def get_oil_price_today(): get_price_query = (db.session .query(Pricing_Oil_Oil) .order_by(Pricing_Oil_Oil.date.desc()) .first()) return jsonify({"ok": True, 'price_from_supplier': get_price_query.price_from_supplier, 'price_for_customer': get_price_query.price_for_customer, 'price_for_employee': get_price_query.price_for_employee, 'price_same_day': get_price_query.price_same_day, 'price_prime': get_price_query.price_prime, 'price_emergency': get_price_query.price_emergency, }), 200 @info.route("/price/oil/table", methods=["GET"]) def get_pricing(): get_price_query = (db.session .query(Pricing_Oil_Oil) .order_by(Pricing_Oil_Oil.date.desc()) .first()) delivery_schema = Pricing_Oil_Oil_schema(many=False) return jsonify(delivery_schema.dump(get_price_query)) @info.route("/company", methods=["GET"]) def get_company(): get_data_company = (db.session .query(Admin_Company) .first()) return jsonify({"ok": True, 'name': get_data_company.company_name, 'telephone': get_data_company.company_phone_number, }), 200