Initial commit

This commit is contained in:
2026-01-18 21:01:43 +03:00
commit 455b6df2ba
3329 changed files with 1143638 additions and 0 deletions
View File
+44
View File
@@ -0,0 +1,44 @@
from pydantic import BaseModel
from datetime import datetime
from typing import Optional
from enum import Enum
class PostStatus(str, Enum):
draft = "draft"
scheduled = "scheduled"
published = "published"
cancelled = "cancelled"
class PostBase(BaseModel):
title: str
content: str
scheduled_time: Optional[datetime] = None
status: PostStatus = PostStatus.draft
class PostCreate(PostBase):
pass
class PostUpdate(BaseModel):
title: Optional[str] = None
content: Optional[str] = None
scheduled_time: Optional[datetime] = None
status: Optional[PostStatus] = None
class PostInDB(PostBase):
id: int
owner_id: int
created_at: datetime
updated_at: Optional[datetime] = None
published_at: Optional[datetime] = None
class Config:
from_attributes = True
class Post(PostInDB):
pass
+12
View File
@@ -0,0 +1,12 @@
from pydantic import BaseModel
from typing import Optional
class Token(BaseModel):
access_token: str
token_type: str
class TokenData(BaseModel):
username: Optional[str] = None
user_id: Optional[int] = None
+48
View File
@@ -0,0 +1,48 @@
from pydantic import BaseModel
from typing import Optional
from datetime import datetime
class UserBase(BaseModel):
telegram_id: str
username: Optional[str] = None
first_name: Optional[str] = None
last_name: Optional[str] = None
email: Optional[str] = None
avatar_url: Optional[str] = None
is_active: Optional[bool] = True
is_verified: Optional[bool] = False
class UserCreate(UserBase):
pass
class UserUpdate(BaseModel):
username: Optional[str] = None
first_name: Optional[str] = None
last_name: Optional[str] = None
email: Optional[str] = None
avatar_url: Optional[str] = None
class UserInDB(UserBase):
id: int
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
from_attributes = True
class UserPublic(BaseModel):
id: int
telegram_id: str
username: Optional[str] = None
first_name: Optional[str] = None
last_name: Optional[str] = None
avatar_url: Optional[str] = None
is_verified: bool
class Config:
from_attributes = True