diff --git a/app/mongo_worker.py b/app/mongo_worker.py index fb080c2..800f4ba 100644 --- a/app/mongo_worker.py +++ b/app/mongo_worker.py @@ -55,6 +55,18 @@ class MongoWorker: upsert=True, return_document=True) return counter["counter"] + + + def get_visited_cards(self, user_id: int) -> Visited: + document = self.visited_data.find_one({"user_id": user_id}) + return Visited.model_validate(document) + + def update_visited_cards(self, user_id: int, visited_card_id: int) -> Visited: + update_visited = self.visited_data.find_one_and_update({"user_id": user_id}, + {"$addToSet": {"cards_visited": visited_card_id}}, + upsert=True, + return_document=True) + return Visited.model_validate(update_visited) def add_card(self, choice_A: str, choice_B: str, author_id: int) -> Card: @@ -135,11 +147,13 @@ class MongoWorker: if __name__ == "__main__": mongo = MongoWorker() #print(mongo.check_user(123)) - print(mongo.add_user(123, "VolochayIgor", "Igor", "Volochay", "photo_0.jpg")) + #print(mongo.add_user(123, "VolochayIgor", "Igor", "Volochay", "photo_0.jpg")) #print(mongo.get_user(123)) - print(mongo.add_card("A", "B", 123)) + #print(mongo.add_card("A", "B", 123)) #print(mongo.get_random_cards(10, active_status=False)) #print(mongo.update_counter("cards_counter")) - print(mongo.select_choice(1, "A")) - print(mongo.like_card(1, 455412573)) - print(mongo.dislike_card(1, 455412573)) + #print(mongo.select_choice(1, "A")) + #print(mongo.like_card(1, 455412573)) + #print(mongo.dislike_card(1, 455412573)) + print(mongo.update_visited_cards(123, 2)) + print(mongo.get_visited_cards(123)) diff --git a/app/schemas/base_schemas.py b/app/schemas/base_schemas.py index d2fe829..eb6bb71 100644 --- a/app/schemas/base_schemas.py +++ b/app/schemas/base_schemas.py @@ -1,5 +1,3 @@ -import uuid - from pydantic import BaseModel class User(BaseModel): @@ -11,12 +9,16 @@ class User(BaseModel): photo_url: str activity: int = 0 - liked_post_ids: list[int] = list() - disliked_post_ids: list[int] = list() + liked_card_ids: list[int] = list() + disliked_card_ids: list[int] = list() comments_ids: list[int] = list() registration_date: str +class Visited(BaseModel): + user_id: int + cards_visited: set[int] + class Card(BaseModel): card_id: int