many updates
This commit is contained in:
73
FitnessSync/scratch/check_stormchaser_generic.py
Normal file
73
FitnessSync/scratch/check_stormchaser_generic.py
Normal file
@@ -0,0 +1,73 @@
|
||||
|
||||
import sys
|
||||
import os
|
||||
sys.path.append('/app/backend')
|
||||
import logging
|
||||
from src.services.postgresql_manager import PostgreSQLManager
|
||||
from src.utils.config import config
|
||||
from src.models.activity import Activity
|
||||
from src.models.bike_setup import BikeSetup
|
||||
from sqlalchemy import or_, and_
|
||||
|
||||
logging.basicConfig(level=logging.WARNING)
|
||||
|
||||
def analyze():
|
||||
print("Connecting to database...")
|
||||
db_manager = PostgreSQLManager(config.DATABASE_URL)
|
||||
session = db_manager.SessionLocal()
|
||||
|
||||
try:
|
||||
# 1. Find the Stormchaser setup(s)
|
||||
stormchasers = session.query(BikeSetup).filter(
|
||||
or_(
|
||||
BikeSetup.name.ilike('%Stormchaser%'),
|
||||
BikeSetup.frame.ilike('%Stormchaser%')
|
||||
)
|
||||
).order_by(BikeSetup.purchase_date.asc()).all()
|
||||
|
||||
reference_date = None
|
||||
for bike in stormchasers:
|
||||
if bike.purchase_date:
|
||||
if reference_date is None or bike.purchase_date < reference_date:
|
||||
reference_date = bike.purchase_date
|
||||
|
||||
if not reference_date:
|
||||
print("No Stormchaser purchase date found.")
|
||||
return
|
||||
|
||||
print(f"Using Reference Date: {reference_date}")
|
||||
|
||||
# 2. Find Generic Bike ID
|
||||
generic = session.query(BikeSetup).filter(BikeSetup.name == 'GenericBike').first()
|
||||
if not generic:
|
||||
print("GenericBike setup not found.")
|
||||
return
|
||||
|
||||
# 3. Query Activities
|
||||
# Find Generic Rides in range
|
||||
query = session.query(Activity).filter(
|
||||
Activity.bike_setup_id == generic.id,
|
||||
Activity.start_time >= reference_date
|
||||
)
|
||||
|
||||
count = query.count()
|
||||
|
||||
print(f"\nResult: {count} rides tagged as Generic since {reference_date}")
|
||||
|
||||
# Also check smart confidence stats on recently matched Stormchaser rides
|
||||
print("\n[Smart Match Stats Sample (Stormchaser)]")
|
||||
sc_rides = session.query(Activity).filter(
|
||||
Activity.bike_setup_id.in_([b.id for b in stormchasers]),
|
||||
Activity.start_time >= reference_date
|
||||
).order_by(Activity.start_time.desc()).limit(10).all()
|
||||
|
||||
for r in sc_rides:
|
||||
print(f"ID: {r.id} | Conf: {r.bike_match_confidence} | Type: {r.activity_type}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error during analysis: {e}")
|
||||
finally:
|
||||
session.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
analyze()
|
||||
Reference in New Issue
Block a user