Coverage for app / models / user.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-21 22:41 +0300

1from datetime import UTC, datetime 

2from typing import TYPE_CHECKING 

3 

4from sqlalchemy.orm import Mapped, mapped_column, relationship 

5 

6from app.models.base import Base 

7 

8if TYPE_CHECKING: 

9 from app.models.link import Link 

10 

11 

12class User(Base): 

13 __tablename__ = "users" 

14 

15 id: Mapped[int] = mapped_column(primary_key=True) 

16 email: Mapped[str] = mapped_column(unique=True) 

17 hashed_password: Mapped[str] = mapped_column() 

18 created_at: Mapped[datetime] = mapped_column( 

19 default=lambda: datetime.now(tz=UTC).replace(tzinfo=None) 

20 ) 

21 

22 urls: Mapped[list["Link"]] = relationship(back_populates="user")