26 lines
774 B
Python
26 lines
774 B
Python
from __future__ import annotations
|
|
|
|
from sqlalchemy import ForeignKey, String
|
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
|
|
from core.db import Base
|
|
|
|
|
|
class Category(Base):
|
|
__tablename__ = "categories"
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
|
title: Mapped[str] = mapped_column(String(64))
|
|
|
|
photos: Mapped[list[Photo]] = relationship(back_populates="category")
|
|
|
|
|
|
class Photo(Base):
|
|
__tablename__ = "photos"
|
|
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
|
filename: Mapped[str] = mapped_column(String(255), unique=True)
|
|
path: Mapped[str] = mapped_column(String(512))
|
|
|
|
category_id: Mapped[int] = mapped_column(ForeignKey("categories.id"))
|
|
category: Mapped[Category] = relationship(back_populates="photos")
|