import uuid
from sqlalchemy import Uuid, Column, DateTime, Enum, Float, ForeignKey, String

from app.database import Base
from app.schemas.meter_value import Measurand, PhaseType

class MeterValue(Base):
    __tablename__ = "meter_values"

    id = Column(Uuid, primary_key=True, default=uuid.uuid4)
    timestamp = Column(DateTime, index=True)
    measurand = Column(Enum(Measurand), index=True)
    phase_type = Column(Enum(PhaseType), nullable=True)
    unit = Column(String, nullable=True)
    value = Column(Float)

    transaction_id = Column(String, ForeignKey("transactions.id"), index=True)