diff --git a/core/api/updates/__init__.py b/core/api/updates/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/core/api/updates/handlers.py b/core/api/updates/handlers.py new file mode 100644 index 0000000..0e2f7ac --- /dev/null +++ b/core/api/updates/handlers.py @@ -0,0 +1,18 @@ +from fastapi import APIRouter, Path + +router = APIRouter(prefix="/update") + + +@router.get('/check/{program_name}') +def check_update(program_name: str = Path()): + pass + + +@router.get('/download/{program_name}') +def download_latest_update(program_name: str = Path()): + pass + + +@router.get("/download/{program_name}/{version}") +def download_specific_version(program_name: str = Path(), version: str = Path()): + pass diff --git a/core/external/__init__.py b/core/external/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/core/external/base.py b/core/external/base.py new file mode 100644 index 0000000..e19f67f --- /dev/null +++ b/core/external/base.py @@ -0,0 +1,12 @@ +import abc +from config import Settings + + +class ExternalService(abc.ABC): + @abc.abstractmethod + async def connect(self, config: Settings): + raise NotImplemented() + + @abc.abstractmethod + async def get_session(self): + raise NotImplemented() diff --git a/core/external/s3.py b/core/external/s3.py new file mode 100644 index 0000000..e69de29 diff --git a/core/graphql/__init__.py b/core/graphql/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/core/models/update/db.py b/core/models/update/db.py index a14a153..ce8a3a8 100644 --- a/core/models/update/db.py +++ b/core/models/update/db.py @@ -5,9 +5,10 @@ from database import Base class MPUpdate(Base): + __tablename__ = "MP_UPDATE" id: Mapped[int] = mapped_column(autoincrement=True, primary_key=True) version: Mapped[str] = mapped_column(nullable=False) - program_id: Mapped[int] = mapped_column(ForeignKey("MPProgram.id", ondelete="CASCADE")) + program_id: Mapped[int] = mapped_column(ForeignKey("MP_PROGRAM.id", ondelete="CASCADE")) description: Mapped[str | None] = mapped_column(nullable=True) download_link_android: Mapped[str | None] = mapped_column(nullable=True) download_link_ios: Mapped[str | None] = mapped_column(nullable=True) @@ -15,5 +16,15 @@ class MPUpdate(Base): class MPProgram(Base): + __tablename__ = "MP_PROGRAM" id: Mapped[int] = mapped_column(autoincrement=True, primary_key=True) name: Mapped[str] + + +class MPUser(Base): + __tablename__ = "MP_USER" + id: Mapped[int] = mapped_column(autoincrement=True, primary_key=True) + username: Mapped[str] = mapped_column(nullable=False) + email: Mapped[str] = mapped_column(nullable=False) + password: Mapped[str] = mapped_column(nullable=False) + is_active: Mapped[bool] = mapped_column(nullable=False)