from sqlalchemy import Column, Integer, Float, String, DateTime, create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from datetime import datetime Base = declarative_base() class SensorData(Base): __tablename__ = 'sensor_data' id = Column(Integer, primary_key=True) timestamp = Column(DateTime, nullable=False) sensor_id = Column(String, nullable=False) rainfall_mm = Column(Float, nullable=False) water_level_cm = Column(Float, nullable=False) flow_rate_lps = Column(Float, nullable=False) # --- ADD THIS ENTIRE NEW CLASS --- class User(UserMixin, Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) username = Column(String(64), unique=True, nullable=False) # email = Column(String(120), unique=True, nullable=False) # You can add email later if you want password_hash = Column(String(128), nullable=False) def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password) def __repr__(self): return f'<User {self.username}>' # --- END OF NEW CLASS --- def __repr__(self): return f"<SensorData(sensor_id={self.sensor_id}, rainfall_mm={self.rainfall_mm})>" # Database setup (SQLite for now) engine = create_engine("sqlite:///suds.db") Session = sessionmaker(bind=engine) session = Session()