/ theprofessor / models / articlemodel.py
swadhinbiswas day 5 · 2/10/2024
b4adfb2
46 lines · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from beanie import Document, Indexed
from typing import List,Any

class ArticleModel(Document):
    title: str
    owner: List[str]
    filename:str
    content:str

    
    def __repr__(self) -> str:
        return f"ArticleModel(title={self.title}, owner={self.owner})"
    
    def __str__(self) -> str:
        return self.__repr__()
    
    def __eq__(self, other: Any) -> bool:
        if isinstance(other, ArticleModel):
            return self.title == other.title and self.owner == other.owner
        return False
    @property
    def get_title(self):
        return self.title       
    @property
    def get_all_text(self):
        return self.all_text
    @property
    def get_owner(self):
        return self.owner
    @property
    def set_title(self, title):
        self.title = title
        
    @classmethod
    async def get_article_by_title(cls, title: str):
        return await cls.get(title=title)
    async def get_article_by_owner(cls, owner: str):
        return await cls.get(owner=owner)
    async def get_article_by_text(cls, all_text: str):
        return await cls.get(all_text=all_text)
    async def get_article_by_title_and_owner(cls, title: str, owner: str):
        return await cls.get(title=title, owner=owner)
    async def get_article_by_title_and_text(cls, title: str, all_text: str):
        return await cls.get(title=title, all_text=all_text)
    async def get_article_by_owner_and_text(cls, owner: str, all_text: str):
        return await cls.get(owner=owner, all_text=all_text)