BookmarkBrain / backend /models.py
smlflg's picture
Initial public upload from Projekte/BookmarkBrain
3ac10cb verified
Raw History Blame Contribute Delete
1.27 kB
from __future__ import annotations
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, HttpUrl
class BookmarkCreate(BaseModel):
url: str
title: str
description: str = ""
context: str = ""
user_tags: list[str] = []
class BookmarkUpdate(BaseModel):
title: Optional[str] = None
description: Optional[str] = None
context: Optional[str] = None
user_tags: Optional[list[str]] = None
class BookmarkResponse(BaseModel):
id: int
url: str
title: str
description: str
context: str
folder_path: str
domain: str
auto_tags: list[str]
user_tags: list[str]
content_snippet: str
created_at: str
updated_at: str
visit_count: int
is_dead: bool
class SearchResult(BaseModel):
bookmark: BookmarkResponse
score: float
match_type: str
class SearchResponse(BaseModel):
results: list[SearchResult]
query: str
total: int
class ImportResult(BaseModel):
imported: int
skipped: int
errors: int
class TagCount(BaseModel):
tag: str
count: int
class StatsResponse(BaseModel):
total_bookmarks: int
total_tags: int
top_domains: list[dict]
dead_links: int
recent_bookmarks: list[BookmarkResponse]