"""
Driver Account Settings Model
Driver preferences and account configuration
"""
from typing import Optional
from sqlalchemy import ForeignKey, JSON
from sqlalchemy.orm import Mapped, mapped_column, relationship

from app.models.base import BaseModel


class DriverAccountSettings(BaseModel):
    """Driver account settings and preferences"""
    __tablename__ = "driver_account_settings"

    driver_id: Mapped[int] = mapped_column(
        ForeignKey("drivers.id", ondelete="CASCADE"),
        nullable=False,
        unique=True,
        index=True
    )
    settings: Mapped[Optional[dict]] = mapped_column(JSON, nullable=True, default=dict)

    driver: Mapped["Driver"] = relationship(
        "Driver",
        back_populates="account_settings",
        foreign_keys=[driver_id]
    )
