Skip to content

Commit

Permalink
second_try
Browse files Browse the repository at this point in the history
  • Loading branch information
lyashkun committed Sep 2, 2024
1 parent 4516cad commit c6c10ac
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 24 deletions.
2 changes: 1 addition & 1 deletion db/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class Meta:
constraints = [
models.UniqueConstraint(
fields=["movie_session", "seat", "row"],
name="unique_ticket",
name="unique_movie_session_seat_row",
),
]

Expand Down
13 changes: 6 additions & 7 deletions services/movie_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def create_movie_session(
)


def get_movies_sessions(session_date: str = None) -> QuerySet:
def get_movies_sessions(session_date: str | None = None) -> QuerySet:
queryset = MovieSession.objects.all()
if session_date:
queryset = queryset.filter(show_time__date=session_date)
Expand All @@ -26,9 +26,9 @@ def get_movie_session_by_id(movie_session_id: int) -> MovieSession:

def update_movie_session(
session_id: int,
show_time: str = None,
movie_id: int = None,
cinema_hall_id: int = None,
show_time: str | None = None,
movie_id: int | None = None,
cinema_hall_id: int | None = None,
) -> None:
movie_session = MovieSession.objects.get(id=session_id)
if show_time:
Expand All @@ -41,9 +41,8 @@ def update_movie_session(


def get_taken_seats(movie_session_id: int) -> list:
tickets = (MovieSession.objects.get(id=movie_session_id).
tickets.values("row", "seat"))
return list(tickets)
return list(MovieSession.objects.get(id=movie_session_id).
tickets.values("row", "seat"))


def delete_movie_session_by_id(session_id: int) -> None:
Expand Down
20 changes: 10 additions & 10 deletions services/order.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
from django.db import transaction
from db.models import Order, Ticket
from db.models import User
from django.contrib.auth import get_user_model


def create_order(
tickets: list[dict],
username: str,
date: str | None = None
) -> Order:
new_data = {}
if date:
new_data["created_at"] = date
with transaction.atomic():
user = User.objects.get(username=username)
order = Order.objects.create(user=user, created_at=date)
Order.objects.filter(id=order.id).update(**new_data)
user = get_user_model().objects.get(username=username)
order = Order.objects.create(user=user)
if date:
order.created_at = date
order.save(update_fields=["created_at"])
for ticket in tickets:
Ticket.objects.create(
order=order,
Expand All @@ -25,7 +24,8 @@ def create_order(
return order


def get_orders(username: str = None) -> Order:
def get_orders(username: str | None = None) -> Order:
queryset = Order.objects.all()
if username:
return Order.objects.filter(user__username=username)
return Order.objects.all()
queryset = queryset.filter(user__username=username)
return queryset
12 changes: 6 additions & 6 deletions services/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ def create_user(


def get_user(user_id: int) -> User:
return User.objects.get(id=user_id)
return get_user_model().objects.get(pk=user_id)


def update_user(
user_id: int,
username: str = None,
password: str = None,
email: str = None,
first_name: str = None,
last_name: str = None
username: str | None = None,
password: str | None = None,
email: str | None = None,
first_name: str | None = None,
last_name: str | None = None
) -> User:
user = get_user(user_id)
if username:
Expand Down

0 comments on commit c6c10ac

Please sign in to comment.