Coverage for polar/models/user_organization.py: 100%
16 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 12:42 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 12:42 +0000
1from uuid import UUID
3from sqlalchemy import ForeignKey, Uuid
4from sqlalchemy.orm import Mapped, declared_attr, mapped_column, relationship
6from polar.kit.db.models import TimestampedModel
7from polar.models.organization import Organization
8from polar.models.user import User
11class UserOrganization(TimestampedModel):
12 __tablename__ = "user_organizations"
14 user_id: Mapped[UUID] = mapped_column(
15 Uuid,
16 ForeignKey("users.id"),
17 nullable=False,
18 primary_key=True,
19 )
21 organization_id: Mapped[UUID] = mapped_column(
22 Uuid,
23 ForeignKey("organizations.id", ondelete="CASCADE"),
24 nullable=False,
25 primary_key=True,
26 )
28 @declared_attr
29 def user(cls) -> "Mapped[User]":
30 return relationship("User", lazy="raise")
32 @declared_attr
33 def organization(cls) -> "Mapped[Organization]":
34 return relationship("Organization", lazy="raise")