items-models-import-error

This commit is contained in:
bdrtr 2025-05-08 19:58:41 +03:00
parent 938f950646
commit 7c35097c88
5 changed files with 94 additions and 32 deletions

View file

@ -1,12 +1,19 @@
from datetime import datetime, timedelta, timezone
from typing import Annotated
from sqlalchemy import DateTime
from pydantic import BaseModel
from fastapi import Depends
from sqlalchemy.orm import Session
from sqlalchemy.orm import Session, relationship, mapped_column, Mapped
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
from typing import TYPE_CHECKING
from ..auth.models import Role, Status, UserBase
####!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
from ..auth.models import DBUser # -> tam burda bir hata var circle import yaparken karışıyor nasıl çözülecek bilmiyorum
class UserProfileBase(UserBase):
bio : str | None = None
@ -26,26 +33,44 @@ class UserProfilePrivate(UserProfilePublic):
status : Status | None = None
follow_user : list[int] | None = None
######## ITEMS ######
class BaseItem(BaseModel):
item_created_date : datetime | None = None
item_location : str | None = None
item_type : str | None = None
item_content : str | None = None
class ItemCreate(BaseItem): # item oluşturma için ekstra bir ihtiyaci olmaz
pass
##### 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_id : Mapped[int] = mapped_column(primary_key=True, index=True, autoincrement=True)
user_id : Mapped[int] = mapped_column(ForeignKey('users_table.user_id'), nullable=False, index=True)
item_created_date : Mapped[datetime] = mapped_column(DateTime, default=datetime.now())
item_location = Column(String, default="No location")
item_type = Column(String, default="No type")
item_content = Column(String, default="No content")
item_score = Column(Float, default=0.0)
# ilişkiler
user : Mapped['DBUser'] = relationship("DBUser", back_populates="items", lazy='select')
#collection = relationship("Collections", back_populates="items")
'''
'''
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()
@ -66,5 +91,21 @@ def all_users(session: Annotated[Session, Depends(get_session_db)]) -> list[User
) for user in users]
def add_Item_user(
user: Annotated[UserProfileID, Depends(get_session_db)],
session: Annotated[Session, Depends(get_session_db)],
item: ItemCreate) -> bool:
# DBUser veritabanındaki nesnedir her niteliğe sahiptir
item = Items(
user_id=user.user_id,
item_location=item.item_location,
item_type=item.item_type,
item_content=item.item_content,
item_score=item.item_score,
item_created_date=item.item_created_date
)
session.add(item)
session.commit()
return True