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()
Comments