AI-News/backend/app/db/queries/queries.pyi
2025-12-04 10:04:21 +08:00

141 lines
4.3 KiB
Python

"""Typings for queries generated by aiosql"""
from typing import Dict, Optional, Sequence
from asyncpg import Connection, Record
class TagsQueriesMixin:
async def get_all_tags(self, conn: Connection) -> Record: ...
async def create_new_tags(
self, conn: Connection, tags: Sequence[Dict[str, str]]
) -> None: ...
class UsersQueriesMixin:
async def get_user_by_email(self, conn: Connection, *, email: str) -> Record: ...
async def get_user_by_username(
self, conn: Connection, *, username: str
) -> Record: ...
async def get_user_by_id(self, conn: Connection, *, id: int) -> Record: ...
async def create_new_user(
self,
conn: Connection,
*,
username: str,
email: str,
salt: str,
hashed_password: str
) -> Record: ...
async def update_user_by_username(
self,
conn: Connection,
*,
username: str,
new_username: str,
new_email: str,
new_salt: str,
new_password: str,
new_bio: Optional[str],
new_image: Optional[str],
new_phone: Optional[str],
new_user_type: Optional[str],
new_company_name: Optional[str]
) -> Record: ...
async def admin_update_user_by_id(
self,
conn: Connection,
*,
id: int,
new_username: Optional[str],
new_email: Optional[str],
new_salt: Optional[str],
new_password: Optional[str],
new_bio: Optional[str],
new_image: Optional[str],
new_phone: Optional[str],
new_user_type: Optional[str],
new_company_name: Optional[str]
) -> Record: ...
class ProfilesQueriesMixin:
async def is_user_following_for_another(
self, conn: Connection, *, follower_username: str, following_username: str
) -> Record: ...
async def subscribe_user_to_another(
self, conn: Connection, *, follower_username: str, following_username: str
) -> None: ...
async def unsubscribe_user_from_another(
self, conn: Connection, *, follower_username: str, following_username: str
) -> None: ...
class CommentsQueriesMixin:
async def get_comments_for_article_by_slug(
self, conn: Connection, *, slug: str
) -> Record: ...
async def get_comment_by_id_and_slug(
self, conn: Connection, *, comment_id: int, article_slug: str
) -> Record: ...
async def create_new_comment(
self, conn: Connection, *, body: str, article_slug: str, author_username: str
) -> Record: ...
async def delete_comment_by_id(
self, conn: Connection, *, comment_id: int, author_username: str
) -> None: ...
class ArticlesQueriesMixin:
async def add_article_to_favorites(
self, conn: Connection, *, username: str, slug: str
) -> None: ...
async def remove_article_from_favorites(
self, conn: Connection, *, username: str, slug: str
) -> None: ...
async def is_article_in_favorites(
self, conn: Connection, *, username: str, slug: str
) -> Record: ...
async def get_favorites_count_for_article(
self, conn: Connection, *, slug: str
) -> Record: ...
async def get_tags_for_article_by_slug(
self, conn: Connection, *, slug: str
) -> Record: ...
async def get_article_by_slug(self, conn: Connection, *, slug: str) -> Record: ...
async def create_new_article(
self,
conn: Connection,
*,
slug: str,
title: str,
description: str,
body: str,
author_username: str
) -> Record: ...
async def add_tags_to_article(
self, conn: Connection, tags_slugs: Sequence[Dict[str, str]]
) -> None: ...
async def update_article(
self,
conn: Connection,
*,
slug: str,
author_username: str,
new_slug: str,
new_title: str,
new_body: str,
new_description: str
) -> Record: ...
async def delete_article(
self, conn: Connection, *, slug: str, author_username: str
) -> None: ...
async def get_articles_for_feed(
self, conn: Connection, *, follower_username: str, limit: int, offset: int
) -> Record: ...
class Queries(
TagsQueriesMixin,
UsersQueriesMixin,
ProfilesQueriesMixin,
CommentsQueriesMixin,
ArticlesQueriesMixin,
): ...
queries: Queries