
from datetime import datetime, timezone
from ..extensions import db


class BaseModel(db.Model):
    """Base model with common fields for all RateRight models"""
    __abstract__ = True
    
    id = db.Column(db.Integer, primary_key=True)
    created_at = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc), nullable=False)
    updated_at = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc), nullable=False)
    
    def to_dict(self):
        """Convert model to dictionary for JSON serialization"""
        return {c.name: getattr(self, c.name) for c in self.__table__.columns}
