generated _collections class

This commit is contained in:
bdrtr 2025-05-07 20:15:51 +03:00
parent 842c127817
commit 938f950646
6 changed files with 132 additions and 13 deletions

View file

@ -1,11 +1,69 @@
from datetime import datetime, timedelta, timezone
from ..auth.models import UserBase
from typing import Annotated
from pydantic import BaseModel
from fastapi import Depends
from sqlalchemy.orm import Session
from sqlalchemy import ForeignKey, Column, Integer, String, Float
from sqlalchemy.dialects.postgresql import ARRAY
from ..auth.models import DBUser, Role, Status, UserBase
from ..config import Base, get_session_db
class UserProfile(UserBase):
class UserProfileBase(UserBase):
bio : str | None = None
created_date : datetime | None = None
collections : list[str] | None = None
items :list[str] | None = None
# collection : list[str] | None = None
class UserProfileID(UserProfileBase):
user_id : int | None = None
class UserProfilePublic(UserProfileBase):
pass
class UserProfilePrivate(UserProfilePublic):
collection : list[str] | None = None
role : Role | None = None
status : Status | None = None
follow_user : list[int] | None = None
##### VERİTABANI MODELİ #####
# Tüm modeller AUTH'da veri tabanına işlendi yukardaki
#modeller veri tabanında mevcuttur. Değiştirmek için AUTH'daki
# DBUser modelini değiştirip tekrar veri tabanına işleyebilirsin
class Items(Base):
__tablename__ = "items_table"
item_id = Column(Integer, primary_key=True, index=True)
user_id = Column(Integer, ForeignKey("users_table.user_id"), nullable=False)
#collection_id = Column(Integer, ForeignKey("collections_table.collection_id"), nullable=False)
item_created_date = Column(String, default=datetime.now())
item_location = Column(String, default="No location") #daha net tanımlancak
item_type = Column(String, default="No type")
item_content = Column(String, default="No content")
item_score = Column(Float, default=0.0)
def is_user_exsist(username : str, session : Annotated[Session, Depends(get_session_db)]) -> bool | UserProfilePublic:
#DBUser veritabanındaki nesnedir her niteliğe sahiptir
user = session.query(DBUser).filter(DBUser.username == username).first()
return user
def all_users(session: Annotated[Session, Depends(get_session_db)]) -> list[UserProfilePublic]:
users = session.query(DBUser).all()
return [UserProfilePublic(
username=user.username,
bio=user.bio,
created_date=user.created_date,
items=user.items,
collections=user.collections,
role=user.role,
status=user.status
) for user in users]