"""Dashboard default model: visitor-IP -> business-unit mapping.

A shopfloor / lobby kiosk display resolves which business unit to show by the
display PC's IP address. Powers the visitor-location lookup the shopfloor and
TV dashboards call when no explicit business unit is given.
"""

from shopdb.extensions import db
from .base import BaseModel


class DashboardDefault(BaseModel):
    """Maps a display PC IP address to the business unit it should show."""
    __tablename__ = 'dashboarddefaults'

    dashboarddefaultid = db.Column(db.Integer, primary_key=True)
    ipaddress = db.Column(db.String(50), unique=True, nullable=False)
    businessunitid = db.Column(
        db.Integer,
        db.ForeignKey('businessunits.businessunitid'),
        nullable=False
    )
    description = db.Column(db.String(255))

    businessunit = db.relationship('BusinessUnit')

    def __repr__(self):
        return f"<DashboardDefault {self.ipaddress} -> {self.businessunitid}>"
