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
« 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
4from sqlalchemy.orm import Mapped, mapped_column, relationship
6from app.models.base import Base
8if TYPE_CHECKING:
9 from app.models.link import Link
12class User(Base):
13 __tablename__ = "users"
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 )
22 urls: Mapped[list["Link"]] = relationship(back_populates="user")