Coverage for src / auth / models.py: 100%
14 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-10 22:03 +0200
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-10 22:03 +0200
1import uuid
2from datetime import datetime, timezone
3from typing import List
5from fastapi_users_db_sqlalchemy import SQLAlchemyBaseUserTable
6from sqlalchemy import Integer, String, DateTime
7from sqlalchemy.orm import Mapped, mapped_column
8from sqlalchemy.orm import relationship
9from src.database import Base
12class User(SQLAlchemyBaseUserTable[int], Base):
13 id: Mapped[int] = mapped_column(
14 Integer, primary_key=True, index=True
15 )
16 email: Mapped[str] = mapped_column(
17 String, unique=True, index=True, nullable=False
18 )
19 hashed_password: Mapped[str] = mapped_column(
20 String, nullable=False
21 )
22 registered_at: Mapped[datetime] = mapped_column(
23 DateTime(timezone=True),
24 default=lambda: datetime.now(timezone.utc),
25 nullable=False
26 )
27 links: Mapped[List["Link"]] = relationship(
28 "Link",
29 back_populates="user",
30 lazy="selectin")