forked from polka_billy/porridger
new columns booked_by and booked_counter added, deleted unused migrations
This commit is contained in:
10
back/api.py
10
back/api.py
@ -139,11 +139,15 @@ async def change_book_status(data: pydantic_schemas.Book, current_user: Annotate
|
||||
if not announcement_to_change:
|
||||
raise HTTPException(status_code=404, detail="Item not found")
|
||||
# Проверяем, что объявление бронирует не владелец
|
||||
if current_user.id == announcement_to_change.user_id:
|
||||
if announcement_to_change.booked_by.Comparator.contains(current_user.id):
|
||||
raise HTTPException(status_code=403, detail="A user can't book his announcement")
|
||||
else:
|
||||
# Инкрементируем поле booked_by на 1
|
||||
announcement_to_change.booked_by += 1
|
||||
# Инкрементируем поле booked_counter на 1
|
||||
announcement_to_change.booked_counter += 1
|
||||
# вставляем индекс забронировавшего пользователя в поле booked_by
|
||||
await db.execute(mytable.insert(), data=[1,2,3])
|
||||
|
||||
announcement_to_change.booked_by
|
||||
# фиксируем изменения в бд
|
||||
await db.commit()
|
||||
await db.refresh(announcement_to_change)
|
||||
|
@ -1,9 +1,9 @@
|
||||
from sqlalchemy import Column, Integer, String, Boolean, Float, Date, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
from .db import Base, engine
|
||||
|
||||
|
||||
class User(Base):#класс пользователя
|
||||
__tablename__ = "users"
|
||||
|
||||
@ -36,8 +36,8 @@ class Announcement(Base): #класс объявления
|
||||
src = Column(String, nullable=True) #изображение продукта в объявлении
|
||||
metro = Column(String) #ближайщее метро от адреса нахождения продукта
|
||||
trashId = Column(Integer, nullable=True)
|
||||
booked_by = Column(Integer) #количество забронировавших (0 - никто не забронировал)
|
||||
# state = Column(Enum(State), default=State.published) # состояние объявления (опубликовано, забронировано, устарело)
|
||||
booked_by = postgresql.ARRAY(Integer, dimensions=2) #массив с id пользователей, забронировавших объявление
|
||||
booked_counter = Column(Integer) #количество забронировавших (0 - никто не забронировал)
|
||||
obsolete = Column(Boolean, default=False) # состояние объявления (по-умолчанию считаем его актуальным)
|
||||
|
||||
user = relationship("User", back_populates="announcements")
|
||||
|
Reference in New Issue
Block a user