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