"""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