From 13982ac49577dc093c7628c78d917dbf5ff06a76 Mon Sep 17 00:00:00 2001 From: Giovanni Date: Wed, 7 Oct 2026 22:01:41 +0200 Subject: [PATCH] add experience_links table --- apps/backend/app/models/experience.py | 6 ++++ apps/backend/app/models/experience_links.py | 39 +++++++++++++++++++++ apps/backend/app/schemas/experience.py | 1 + 3 files changed, 46 insertions(+) create mode 100644 apps/backend/app/models/experience_links.py diff --git a/apps/backend/app/models/experience.py b/apps/backend/app/models/experience.py index 215b150..f91d463 100644 --- a/apps/backend/app/models/experience.py +++ b/apps/backend/app/models/experience.py @@ -44,4 +44,10 @@ class Experience(Base): "ExperienceTask", back_populates="experience", cascade="all, delete-orphan" + ) + + links = relationship( + "ExperienceLink", + back_populates="experience", + cascade="all, delete-orphan" ) \ No newline at end of file diff --git a/apps/backend/app/models/experience_links.py b/apps/backend/app/models/experience_links.py new file mode 100644 index 0000000..d908bd0 --- /dev/null +++ b/apps/backend/app/models/experience_links.py @@ -0,0 +1,39 @@ +from sqlalchemy import ( + Column, + Integer, + String, + ForeignKey +) + +from sqlalchemy.orm import relationship + +from app.database import Base + + +class ExperienceLinks(Base): + __tablename__ = "experience_links" + + id = Column( + Integer, + primary_key=True, + index=True + ) + + link = Column( + String(255), + nullable=False + ) + + experience_id = Column( + Integer, + ForeignKey( + "experiences.id", + ondelete="CASCADE" + ), + nullable=False + ) + + experience = relationship( + "Experience", + back_populates="links" + ) \ No newline at end of file diff --git a/apps/backend/app/schemas/experience.py b/apps/backend/app/schemas/experience.py index 8b19059..1907df8 100644 --- a/apps/backend/app/schemas/experience.py +++ b/apps/backend/app/schemas/experience.py @@ -14,6 +14,7 @@ class ExperienceResponse(BaseModel): duration: str role: str tasks: list[ExperienceTaskResponse] + links: list[ExperienceLinkResponse] class Config: from_attributes = True