from datetime import datetime
import json

from src.db import Base
from src.db import db
from src.serialize import serialize


class Sensor(Base):
    __tablename__ = 'sensor'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    sensorName = db.Column(db.String(32), nullable=False)
    createdValue = db.Column(db.DateTime(), nullable=False)
    sensorType = db.Column(db.String(32), nullable=False)
    sensorValue = db.Column(db.Float, nullable=False)
    receivedValue = db.Column(db.DateTime(), default=datetime.utcnow())

    def __repr__(self):
        return str(self.id)  + " - " + str(self.sensorName) + " - " + str(self.sensorType) + ": " + str(self.sensorValue) + ", created: " + str(self.createdValue) + ", received: " + str(self.receivedValue)

    def as_dict(self):
       return {c.name: getattr(self, c.name) for c in self.__table__.columns}

    def to_json(self):
        d = serialize(self, self.__class__)
        #del d['password']
        return d
