From 2ae4abffa164230e9560a79868b9d3ca5d165418 Mon Sep 17 00:00:00 2001 From: Archibald Date: Sun, 13 Apr 2025 12:29:24 +0500 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D1=82?= =?UTF-8?q?=D0=B0=D0=B1=D0=BB=D0=B8=D1=87=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/models/contest_carousel_photos.py | 12 ++++++++++++ API/app/domain/models/contest_files.py | 11 +++++++++++ API/app/domain/models/contest_statuses.py | 9 +++++++++ API/app/domain/models/contests.py | 17 +++++++++++++++++ API/app/domain/models/profiles.py | 17 +++++++++++++++++ API/app/domain/models/project_files.py | 11 +++++++++++ API/app/domain/models/projects.py | 10 ++++++++++ API/app/domain/models/teams.py | 12 ++++++++++++ API/app/domain/models/users.py | 12 ++++++++++++ 9 files changed, 111 insertions(+) create mode 100644 API/app/domain/models/contest_carousel_photos.py create mode 100644 API/app/domain/models/contest_files.py create mode 100644 API/app/domain/models/contest_statuses.py create mode 100644 API/app/domain/models/contests.py create mode 100644 API/app/domain/models/profiles.py create mode 100644 API/app/domain/models/project_files.py create mode 100644 API/app/domain/models/projects.py create mode 100644 API/app/domain/models/teams.py create mode 100644 API/app/domain/models/users.py diff --git a/API/app/domain/models/contest_carousel_photos.py b/API/app/domain/models/contest_carousel_photos.py new file mode 100644 index 0000000..e6e2243 --- /dev/null +++ b/API/app/domain/models/contest_carousel_photos.py @@ -0,0 +1,12 @@ +from sqlalchemy import String, Column, Integer, ForeignKey + +from app.domain.models.base import AdvancedBaseModel + + +class ContestCarouselPhotos(AdvancedBaseModel): + __tablename__ = 'contest_carousel_photos' + + file_path = Column(String, nullable=False) + number = Column(Integer, nullable=False) + + contest_id = Column(Integer, ForeignKey('contests.id'), nullable=False) diff --git a/API/app/domain/models/contest_files.py b/API/app/domain/models/contest_files.py new file mode 100644 index 0000000..680e3b9 --- /dev/null +++ b/API/app/domain/models/contest_files.py @@ -0,0 +1,11 @@ +from sqlalchemy import Column, String, ForeignKey, Integer + +from app.domain.models.base import AdvancedBaseModel + + +class ContestFile(AdvancedBaseModel): + __tablename__ = 'contest_files' + + file_path = Column(String, nullable=False) + + contest_id = Column(Integer, ForeignKey('contests.id'), nullable=False) diff --git a/API/app/domain/models/contest_statuses.py b/API/app/domain/models/contest_statuses.py new file mode 100644 index 0000000..ad4b8bc --- /dev/null +++ b/API/app/domain/models/contest_statuses.py @@ -0,0 +1,9 @@ +from sqlalchemy import VARCHAR, Column + +from app.domain.models.base import AdvancedBaseModel + + +class ContestStatus(AdvancedBaseModel): + __tablename__ = 'contest_statuses' + + title = Column(VARCHAR(150), unique=True, nullable=False) diff --git a/API/app/domain/models/contests.py b/API/app/domain/models/contests.py new file mode 100644 index 0000000..70b488f --- /dev/null +++ b/API/app/domain/models/contests.py @@ -0,0 +1,17 @@ +from sqlalchemy import VARCHAR, Column, String, ForeignKey, Integer, Boolean + +from app.domain.models.base import AdvancedBaseModel + + +class Contest(AdvancedBaseModel): + __tablename__ = 'contests' + + title = Column(VARCHAR(150), unique=True, nullable=False) + description = Column(String) + web_url = Column(String, nullable=False) + photo = Column(String) + results = Column(String) + is_win = Column(Boolean) + + project_id = Column(Integer, ForeignKey('projects.id'), nullable=False) + status_id = Column(Integer, ForeignKey('contest_status.id'), nullable=False) diff --git a/API/app/domain/models/profiles.py b/API/app/domain/models/profiles.py new file mode 100644 index 0000000..c24102d --- /dev/null +++ b/API/app/domain/models/profiles.py @@ -0,0 +1,17 @@ +from sqlalchemy import Column, VARCHAR, Date, ForeignKey, Integer + +from app.domain.models.base import AdvancedBaseModel + + +class Profile(AdvancedBaseModel): + __tablename__ = 'profiles' + + first_name = Column(VARCHAR(150), nullable=False) + last_name = Column(VARCHAR(150), nullable=False) + patronymic = Column(VARCHAR(150)) + birthday = Column(Date, nullable=False) + email = Column(VARCHAR(150)) + phone = Column(VARCHAR(28)) + + role_id = Column(Integer, ForeignKey('roles.id'), nullable=False) + team_id = Column(Integer, ForeignKey('teams.id'), nullable=False) diff --git a/API/app/domain/models/project_files.py b/API/app/domain/models/project_files.py new file mode 100644 index 0000000..50840c0 --- /dev/null +++ b/API/app/domain/models/project_files.py @@ -0,0 +1,11 @@ +from sqlalchemy import Column, String, Integer, ForeignKey + +from app.domain.models.base import AdvancedBaseModel + + +class ProjectFile(AdvancedBaseModel): + __tablename__ = 'project_files' + + file_path = Column(String, unique=True, nullable=False) + + project_id = Column(Integer, ForeignKey('projects.id'), nullable=False) diff --git a/API/app/domain/models/projects.py b/API/app/domain/models/projects.py new file mode 100644 index 0000000..f576df3 --- /dev/null +++ b/API/app/domain/models/projects.py @@ -0,0 +1,10 @@ +from sqlalchemy import Column, VARCHAR, String + +from app.domain.models.base import AdvancedBaseModel + + +class Project(AdvancedBaseModel): + __tablename__ = 'projects' + + description = Column(VARCHAR(150)) + repository_url = Column(String, nullable=False) diff --git a/API/app/domain/models/teams.py b/API/app/domain/models/teams.py new file mode 100644 index 0000000..45970de --- /dev/null +++ b/API/app/domain/models/teams.py @@ -0,0 +1,12 @@ +from sqlalchemy import Column, VARCHAR, String + +from app.domain.models.base import AdvancedBaseModel + + +class Team(AdvancedBaseModel): + __tablename__ = 'teams' + + title = Column(VARCHAR(150), nullable=False) + description = Column(VARCHAR(150)) + logo = Column(String) + git_url = Column(String) \ No newline at end of file diff --git a/API/app/domain/models/users.py b/API/app/domain/models/users.py new file mode 100644 index 0000000..3558db0 --- /dev/null +++ b/API/app/domain/models/users.py @@ -0,0 +1,12 @@ +from sqlalchemy import Column, VARCHAR, ForeignKey, Integer + +from app.domain.models.base import AdvancedBaseModel + + +class User(AdvancedBaseModel): + __tablename__ = 'users' + + login = Column(VARCHAR(150), unique=True, nullable=False) + password = Column(VARCHAR(150), nullable=False) + + profile_id = Column(Integer, ForeignKey('profiles.id'), nullable=False)