🔥 JSON-хранилище: данные в data/*.json вместо in-memory
- Переписан memory.py: теперь загружает/сохраняет users.json и bookings.json в data/ - booking_service.py: импорты через функции, а не переменные - start.py, profile.py: используют get_user/set_user вместо прямого импорта users - Добавлена папка data/ с .gitkeep
This commit is contained in:
@@ -1,92 +1,27 @@
|
||||
from app.db.memory import bookings
|
||||
from app.db.memory import (
|
||||
create_booking as db_create_booking,
|
||||
get_busy_times as db_get_busy_times,
|
||||
get_user_bookings as db_get_user_bookings,
|
||||
cancel_booking as db_cancel_booking,
|
||||
update_booking as db_update_booking,
|
||||
)
|
||||
|
||||
|
||||
def create_booking(
|
||||
user_id: int,
|
||||
service: str,
|
||||
date: str,
|
||||
master: str,
|
||||
time: str
|
||||
):
|
||||
booking = {
|
||||
"id": len(bookings) + 1,
|
||||
"user_id": user_id,
|
||||
"service": service,
|
||||
"date": date,
|
||||
"master": master,
|
||||
"time": time,
|
||||
"status": "active"
|
||||
}
|
||||
|
||||
bookings.append(booking)
|
||||
|
||||
return booking
|
||||
async def create_booking(user_id, service, master, date, time):
|
||||
return db_create_booking(user_id, service, master, date, time)
|
||||
|
||||
|
||||
def get_busy_times(
|
||||
master: str,
|
||||
date: str
|
||||
):
|
||||
busy_times = []
|
||||
|
||||
for booking in bookings:
|
||||
|
||||
if (
|
||||
booking["master"] == master
|
||||
and booking["date"] == date
|
||||
and booking["status"] == "active"
|
||||
):
|
||||
busy_times.append(
|
||||
booking["time"]
|
||||
)
|
||||
|
||||
return busy_times
|
||||
async def get_busy_times(master, date):
|
||||
return db_get_busy_times(master, date)
|
||||
|
||||
|
||||
def get_user_bookings(
|
||||
user_id: int
|
||||
):
|
||||
result = []
|
||||
async def get_user_bookings(user_id):
|
||||
return db_get_user_bookings(user_id)
|
||||
|
||||
for booking in bookings:
|
||||
|
||||
if (
|
||||
booking["user_id"] == user_id
|
||||
and booking["status"] == "active"
|
||||
):
|
||||
result.append(booking)
|
||||
async def cancel_booking(booking_id):
|
||||
return db_cancel_booking(booking_id)
|
||||
|
||||
return result
|
||||
|
||||
def cancel_booking(
|
||||
booking_id: int
|
||||
):
|
||||
|
||||
for booking in bookings:
|
||||
|
||||
if booking["id"] == booking_id:
|
||||
booking["status"] = "cancelled"
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def update_booking(
|
||||
booking_id: int,
|
||||
service: str,
|
||||
master: str,
|
||||
date: str,
|
||||
time: str
|
||||
):
|
||||
|
||||
for booking in bookings:
|
||||
|
||||
if booking["id"] == booking_id:
|
||||
|
||||
booking["service"] = service
|
||||
booking["master"] = master
|
||||
booking["date"] = date
|
||||
booking["time"] = time
|
||||
|
||||
return booking
|
||||
|
||||
return None
|
||||
async def update_booking(booking_id, service, master, date, time):
|
||||
return db_update_booking(booking_id, service, master, date, time)
|
||||
|
||||
Reference in New Issue
Block a user