Skip to content

Commit

Permalink
(Streamline delivery) Add OrderCase table (#2960) (minor)
Browse files Browse the repository at this point in the history
### Added

- OrderCase table
  • Loading branch information
islean authored Feb 20, 2024
1 parent d70ea61 commit 0422505
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
32 changes: 32 additions & 0 deletions alembic/versions/2024_02_19_43eb680d6181_add_order_case_table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""Add order case table
Revision ID: 43eb680d6181
Revises: d241d8c493fb
Create Date: 2024-02-19 10:13:21.075891
"""

import sqlalchemy as sa

from alembic import op

# revision identifiers, used by Alembic.
revision = "43eb680d6181"
down_revision = "d241d8c493fb"
branch_labels = None
depends_on = None


def upgrade():
op.create_table(
"order_case",
sa.Column("order_id", sa.Integer, nullable=False, index=True),
sa.Column("case_id", sa.Integer, nullable=False, index=True),
sa.ForeignKeyConstraint(["order_id"], ["order.id"], ondelete="CASCADE"),
sa.ForeignKeyConstraint(["case_id"], ["case.id"], ondelete="CASCADE"),
sa.UniqueConstraint("order_id", "case_id", name="_order_case_uc"),
)


def downgrade():
op.drop_table(table_name="order_case")
10 changes: 10 additions & 0 deletions cg/store/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,14 @@ def to_dict(model_instance):
UniqueConstraint("customer_id", "collaboration_id", name="_customer_collaboration_uc"),
)

order_case = Table(
"order_case",
Model.metadata,
Column("order_id", ForeignKey("order.id", ondelete="CASCADE"), nullable=False),
Column("case_id", ForeignKey("case.id", ondelete="CASCADE"), nullable=False),
UniqueConstraint("order_id", "case_id", name="_order_case_uc"),
)


class PriorityMixin:
@property
Expand Down Expand Up @@ -403,6 +411,7 @@ class Case(Model, PriorityMixin):

analyses = orm.relationship(Analysis, back_populates="case", order_by="-Analysis.completed_at")
links = orm.relationship("CaseSample", back_populates="case")
orders = orm.relationship("Order", secondary=order_case, back_populates="cases")

@property
def cohorts(self) -> list[str]:
Expand Down Expand Up @@ -882,6 +891,7 @@ class Order(Model):
__tablename__ = "order"

id = Column(types.Integer, primary_key=True, unique=True)
cases = orm.relationship("Case", secondary=order_case, back_populates="orders")
customer_id = Column(ForeignKey("customer.id"), nullable=False)
customer = orm.relationship(Customer, foreign_keys=[customer_id])
order_date = Column(types.DateTime, nullable=False, default=dt.datetime.now())
Expand Down

0 comments on commit 0422505

Please sign in to comment.