Files
diary-news/backend/app/schemas/misc.py

44 lines
963 B
Python
Raw Normal View History

"""Bookmark / Subscription schemas."""
from __future__ import annotations
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field
from app.models.subscription import SubscriptionMatch
class BookmarkIn(BaseModel):
article_id: int
note: str | None = None
class BookmarkOut(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: int
user_id: int
article_id: int
note: str | None = None
created_at: datetime
class SubscriptionIn(BaseModel):
keyword: str = Field(min_length=1, max_length=255)
match_in: SubscriptionMatch = SubscriptionMatch.ANY
channel: str = "telegram"
target: str | None = None
class SubscriptionOut(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: int
keyword: str
match_in: SubscriptionMatch
channel: str
target: str | None = None
enabled: bool
last_hit_at: datetime | None = None
created_at: datetime