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

1from uuid import UUID 1ab

2 

3from sqlalchemy import ForeignKey, Uuid 1ab

4from sqlalchemy.orm import Mapped, declared_attr, mapped_column, relationship 1ab

5 

6from polar.kit.db.models import TimestampedModel 1ab

7from polar.models.organization import Organization 1ab

8from polar.models.user import User 1ab

9 

10 

11class UserOrganization(TimestampedModel): 1ab

12 __tablename__ = "user_organizations" 1ab

13 

14 user_id: Mapped[UUID] = mapped_column( 1ab

15 Uuid, 

16 ForeignKey("users.id"), 

17 nullable=False, 

18 primary_key=True, 

19 ) 

20 

21 organization_id: Mapped[UUID] = mapped_column( 1ab

22 Uuid, 

23 ForeignKey("organizations.id", ondelete="CASCADE"), 

24 nullable=False, 

25 primary_key=True, 

26 ) 

27 

28 @declared_attr 1ab

29 def user(cls) -> "Mapped[User]": 1ab

30 return relationship("User", lazy="raise") 1ab

31 

32 @declared_attr 1ab

33 def organization(cls) -> "Mapped[Organization]": 1ab

34 return relationship("Organization", lazy="raise") 1ab