from datetime import datetime
from sqlalchemy import Column, Integer, String, DateTime, Text
from app.database import Base
from app.utils.timezone import jakarta_now, to_jakarta_iso

class FleetCommand(Base):
    __tablename__ = "fleet_commands"
    
    id = Column(Integer, primary_key=True, index=True)
    device_id = Column(String, index=True, nullable=False)
    command_type = Column(String, nullable=False)
    payload = Column(Text, default="{}")
    status = Column(String, default="PENDING")
    created_at = Column(DateTime, default=jakarta_now)
    executed_at = Column(DateTime, nullable=True)

    def to_dict(self):
        return {
            "id": self.id,
            "device_id": self.device_id,
            "command_type": self.command_type,
            "payload": self.payload,
            "status": self.status,
            "created_at": to_jakarta_iso(self.created_at),
            "executed_at": to_jakarta_iso(self.executed_at)
        }
