Compare commits

...

3 commits

Author SHA1 Message Date
29b9dd9b84 added user 2026-09-12 14:33:27 +03:00
ba20dd7792 added comment model 2026-09-12 14:29:56 +03:00
d38b53096c added router classes 2026-09-12 14:10:48 +03:00
8 changed files with 47 additions and 11 deletions

Binary file not shown.

View file

@ -1,5 +1,5 @@
[tool.pyrefly]
project-includes = [
"./**/**/*.py",
"./**/*.py",
]

View file

@ -1,3 +1,17 @@
from sqlmodel import Relationship
from ..models.user import User
from sqlmodel import DateTime
from sqlmodel import Field
from sqlmodel import UUID
from sqlmodel import SQLModel
# Comment: id, slug, content, datetime, foreign key: user
class CommentBase(SQLModel):
pass
class Comment(CommentBase, table=True):
id: UUID | None = Field(default=None, primary_key=True)
slug: str = Field(index=True)
content: str = Field()
date_time: DateTime = Field(default=DateTime())
user_id: UUID = Field(foreign_key="user.id")
user: User = Relationship(back_populates="comments")

View file

@ -3,6 +3,3 @@
#Reference: https://isaacfei.com/posts/simple-like-system/
# addReaction
# delete Reaction
# get Reactions by slug

View file

@ -1,8 +1,17 @@
from unicodedata import name
from sqlmodel import Field
from sqlmodel import UUID
from sqlmodel import Relationship
from ..models.comment import Comment
from sqlmodel import SQLModel
# User: id, email(unique), name(unique), usercode(f.e. WLAID, unique) , subscription(bool), active=false
class UserBase(SQLModel):
pass
# CreateUser <- mail, Name
# Login Rate Limit! -> token for everything else
# Forgot Code <- token, email
# Delete User <- token
# change mail <- token, mail
class User(UserBase):
id: UUID | None = Field(default=None, primary_key=True)
email: str = Field(unique=True)
name: str = Field(unique=True)
user_code: str = Field(unique=True) # TODO: create generation function
subscription: bool = Field()
comments: list[Comment] = Relationship(back_populates="user")

View file

@ -0,0 +1,4 @@
# add comment
# delete comment
# get comments

View file

@ -0,0 +1,5 @@
# addReaction
# delete Reaction
# get Reactions by slug

View file

@ -0,0 +1,7 @@
# CreateUser <- mail, Name
# Login Rate Limit! -> token for everything else
# Forgot Code <- email (rate limit)
# Delete User <- token
# change mail <- token, new mail
# delete all deactivated users after 48h