byceps/services/board/dbmodels/board.py
"""
byceps.services.board.dbmodels.board
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Copyright: 2014-2024 Jochen Kupperschmidt
:License: Revised BSD (see `LICENSE` file for details)
"""
from sqlalchemy.orm import Mapped, mapped_column
from byceps.database import db
from byceps.services.board.models import BoardID
from byceps.services.brand.models import BrandID
from byceps.util.instances import ReprBuilder
class DbBoard(db.Model):
"""A board."""
__tablename__ = 'boards'
id: Mapped[BoardID] = mapped_column(db.UnicodeText, primary_key=True)
brand_id: Mapped[BrandID] = mapped_column(
db.UnicodeText, db.ForeignKey('brands.id'), index=True
)
access_restricted: Mapped[bool] = mapped_column(default=False)
def __init__(self, board_id: BoardID, brand_id: BrandID) -> None:
self.id = board_id
self.brand_id = brand_id
def __repr__(self) -> str:
return (
ReprBuilder(self)
.add_with_lookup('id')
.add('brand', self.brand_id)
.build()
)