From 25a0b57465c33aa94395eee16bc64ffaa9c49333 Mon Sep 17 00:00:00 2001 From: Kiryl Alishkevich Date: Sat, 2 May 2026 14:10:43 +0200 Subject: [PATCH 1/5] Basic game logic --- Fools_Arena/asgi.py | 21 +- Fools_Arena/settings.py | 9 + Fools_Arena/urls.py | 3 +- accounts/templates/base.html | 3 +- game/api_urls.py | 25 + game/api_views.py | 327 +++++++++ game/consumers.py | 92 +++ game/migrations/0004_game_runtime_state.py | 18 + game/models.py | 11 + game/realtime.py | 59 ++ game/routing.py | 5 +- game/serializers.py | 73 ++ game/services.py | 804 +++++++++++++++++++++ game/templates/game/lobby_detail.html | 151 ++++ game/templates/game/lobby_list.html | 95 +++ game/templates/game/play.html | 194 +++++ game/tests/conftest.py | 14 + game/tests/test_game_api.py | 96 +++ game/tests/test_game_services.py | 74 ++ game/urls.py | 9 + game/views.py | 37 +- 21 files changed, 2108 insertions(+), 12 deletions(-) create mode 100644 game/api_urls.py create mode 100644 game/api_views.py create mode 100644 game/consumers.py create mode 100644 game/migrations/0004_game_runtime_state.py create mode 100644 game/realtime.py create mode 100644 game/serializers.py create mode 100644 game/services.py create mode 100644 game/templates/game/lobby_detail.html create mode 100644 game/templates/game/lobby_list.html create mode 100644 game/templates/game/play.html create mode 100644 game/tests/conftest.py create mode 100644 game/tests/test_game_api.py create mode 100644 game/tests/test_game_services.py create mode 100644 game/urls.py diff --git a/Fools_Arena/asgi.py b/Fools_Arena/asgi.py index 36517c8..a7a5fc4 100644 --- a/Fools_Arena/asgi.py +++ b/Fools_Arena/asgi.py @@ -4,20 +4,25 @@ It exposes the ASGI callable as a module-level variable named ``application``. For more information on this file, see -https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/ + https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/ """ import os +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Fools_Arena.settings") + +# Initialize Django before importing routing/consumers (they touch auth models). from django.core.asgi import get_asgi_application -from channels.routing import ProtocolTypeRouter -from Fools_Arena.routing import websocket_application +django_asgi_app = get_asgi_application() +from channels.routing import ProtocolTypeRouter -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Fools_Arena.settings") +from Fools_Arena.routing import websocket_application -application = ProtocolTypeRouter({ - "http": get_asgi_application(), - "websocket": websocket_application, -}) \ No newline at end of file +application = ProtocolTypeRouter( + { + "http": django_asgi_app, + "websocket": websocket_application, + } +) diff --git a/Fools_Arena/settings.py b/Fools_Arena/settings.py index d6bc835..9f94a59 100644 --- a/Fools_Arena/settings.py +++ b/Fools_Arena/settings.py @@ -143,3 +143,12 @@ # https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" + +REST_FRAMEWORK = { + "DEFAULT_AUTHENTICATION_CLASSES": [ + "rest_framework.authentication.SessionAuthentication", + ], + "DEFAULT_PERMISSION_CLASSES": [ + "rest_framework.permissions.IsAuthenticated", + ], +} diff --git a/Fools_Arena/urls.py b/Fools_Arena/urls.py index f8e673e..41d1927 100644 --- a/Fools_Arena/urls.py +++ b/Fools_Arena/urls.py @@ -26,10 +26,11 @@ path("admin/", admin.site.urls), # UI path('accounts/', include('accounts.urls')), + path("game/", include("game.urls")), # API path('api/accounts/', include('accounts.api_urls')), - + path("api/game/", include("game.api_urls")), ] # Add static files diff --git a/accounts/templates/base.html b/accounts/templates/base.html index 61e5dd0..553a55d 100644 --- a/accounts/templates/base.html +++ b/accounts/templates/base.html @@ -10,7 +10,8 @@

Fools Arena

diff --git a/game/api_urls.py b/game/api_urls.py new file mode 100644 index 0000000..653221a --- /dev/null +++ b/game/api_urls.py @@ -0,0 +1,25 @@ +"""URL routes for the JSON API under ``/api/game/``.""" + +from django.urls import path + +from game import api_views + +urlpatterns = [ + path("lobbies/", api_views.LobbyListCreateAPI.as_view(), name="api-lobby-list"), + path("lobbies//", api_views.LobbyDetailAPI.as_view(), name="api-lobby-detail"), + path("lobbies//join/", api_views.LobbyJoinAPI.as_view(), name="api-lobby-join"), + path("lobbies//leave/", api_views.LobbyLeaveAPI.as_view(), name="api-lobby-leave"), + path("lobbies//ready/", api_views.LobbyReadyAPI.as_view(), name="api-lobby-ready"), + path("lobbies//start/", api_views.LobbyStartAPI.as_view(), name="api-lobby-start"), + path( + "lobbies//messages/", + api_views.LobbyMessagesAPI.as_view(), + name="api-lobby-messages", + ), + path("games//", api_views.GameStateAPI.as_view(), name="api-game-state"), + path("games//attack/", api_views.GameAttackAPI.as_view(), name="api-game-attack"), + path("games//seal/", api_views.GameSealAPI.as_view(), name="api-game-seal"), + path("games//defend/", api_views.GameDefendAPI.as_view(), name="api-game-defend"), + path("games//take/", api_views.GameTakeAPI.as_view(), name="api-game-take"), + path("games//bito/", api_views.GameBitoAPI.as_view(), name="api-game-bito"), +] diff --git a/game/api_views.py b/game/api_views.py new file mode 100644 index 0000000..e9c1d1c --- /dev/null +++ b/game/api_views.py @@ -0,0 +1,327 @@ +"""REST API for lobbies, gameplay, and lobby chat. + +All gameplay and lobby mutations delegate to :mod:`game.services`. Lobby chat +persists :class:`chat.models.Message` rows and mirrors new messages over the +lobby WebSocket group. +""" + +from django.shortcuts import get_object_or_404 +from rest_framework import permissions, status +from rest_framework.response import Response +from rest_framework.views import APIView + +from chat.models import Message +from game.models import Game, Lobby, LobbyPlayer +from game.realtime import broadcast_lobby +from game.serializers import ( + AttackSerializer, + DefendSerializer, + LobbyCreateSerializer, + LobbyJoinSerializer, + LobbyMessageSerializer, + ReadySerializer, +) +from game.services import ( + GameError, + bito, + create_lobby, + defend, + join_lobby, + leave_lobby, + play_attack, + seal_attack, + serialize_game, + serialize_lobby, + set_ready, + start_game, + take_table, +) + + +def _err(e: GameError): + """Map :class:`~game.services.GameError` to a DRF 400 response. + + Args: + e: Domain error from the service layer. + + Returns: + ``Response`` with ``detail`` and ``code`` keys. + """ + return Response( + {"detail": e.message, "code": e.code}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +class LobbyListCreateAPI(APIView): + """GET public waiting lobbies; POST creates a lobby for the current user.""" + + permission_classes = [permissions.IsAuthenticated] + + def get(self, request): + qs = ( + Lobby.objects.filter(status="waiting", is_private=False) + .select_related("settings", "owner") + .order_by("-created_at") + ) + return Response([serialize_lobby(x) for x in qs]) + + def post(self, request): + ser = LobbyCreateSerializer(data=request.data) + ser.is_valid(raise_exception=True) + d = ser.validated_data + try: + lobby = create_lobby( + request.user, + d["name"], + is_private=d["is_private"], + password=d.get("password") or None, + max_players=d["max_players"], + card_count=d["card_count"], + is_transferable=d["is_transferable"], + neighbor_throw_only=d["neighbor_throw_only"], + allow_jokers=d["allow_jokers"], + turn_time_limit=d.get("turn_time_limit"), + ) + except GameError as e: + return _err(e) + return Response(serialize_lobby(lobby), status=status.HTTP_201_CREATED) + + +class LobbyDetailAPI(APIView): + """Retrieve a single lobby; private lobbies require membership (or ownership).""" + + permission_classes = [permissions.IsAuthenticated] + + def get(self, request, lobby_id): + lobby = get_object_or_404(Lobby, id=lobby_id) + if lobby.is_private: + if not lobby.players.filter(user=request.user).exclude(status="left").exists(): + if lobby.owner_id != request.user.id: + return Response( + {"detail": "Not a member of this private lobby"}, + status=status.HTTP_403_FORBIDDEN, + ) + return Response(serialize_lobby(lobby)) + + +class LobbyJoinAPI(APIView): + """Join (or idempotently re-enter) a lobby, optionally supplying a password.""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, lobby_id): + lobby = get_object_or_404(Lobby, id=lobby_id) + if LobbyPlayer.objects.filter(lobby=lobby, user=request.user).exclude( + status="left" + ).exists(): + return Response(serialize_lobby(lobby)) + ser = LobbyJoinSerializer(data=request.data) + ser.is_valid(raise_exception=True) + try: + join_lobby(lobby, request.user, ser.validated_data.get("password")) + except GameError as e: + return _err(e) + return Response(serialize_lobby(lobby)) + + +class LobbyLeaveAPI(APIView): + """Mark the caller as left for this lobby.""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, lobby_id): + lobby = get_object_or_404(Lobby, id=lobby_id) + try: + leave_lobby(lobby, request.user) + except GameError as e: + return _err(e) + return Response({"detail": "left"}) + + +class LobbyReadyAPI(APIView): + """Toggle the caller's waiting/ready flag.""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, lobby_id): + lobby = get_object_or_404(Lobby, id=lobby_id) + ser = ReadySerializer(data=request.data) + ser.is_valid(raise_exception=True) + try: + set_ready(lobby, request.user, ser.validated_data["ready"]) + except GameError as e: + return _err(e) + return Response(serialize_lobby(lobby)) + + +class LobbyStartAPI(APIView): + """Owner-only endpoint to deal the first hand and open the table.""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, lobby_id): + lobby = get_object_or_404(Lobby, id=lobby_id) + try: + game = start_game(lobby, request.user) + except GameError as e: + return _err(e) + return Response(serialize_game(game, request.user), status=status.HTTP_201_CREATED) + + +class GameStateAPI(APIView): + """Return masked game JSON for the authenticated participant.""" + + permission_classes = [permissions.IsAuthenticated] + + def get(self, request, game_id): + game = get_object_or_404(Game, id=game_id) + if not game.players.filter(user=request.user).exists(): + return Response( + {"detail": "Not a player in this game"}, + status=status.HTTP_403_FORBIDDEN, + ) + return Response(serialize_game(game, request.user)) + + +class GameAttackAPI(APIView): + """Attack or throw-in: play one or more cards from the actor's hand.""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, game_id): + game = get_object_or_404(Game, id=game_id) + if not game.players.filter(user=request.user).exists(): + return Response(status=status.HTTP_403_FORBIDDEN) + ser = AttackSerializer(data=request.data) + ser.is_valid(raise_exception=True) + try: + play_attack(game, request.user, ser.validated_data["card_ids"]) + except GameError as e: + return _err(e) + return Response(serialize_game(game, request.user)) + + +class GameSealAPI(APIView): + """Primary attacker closes the attack wave (move to defend phase).""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, game_id): + game = get_object_or_404(Game, id=game_id) + if not game.players.filter(user=request.user).exists(): + return Response(status=status.HTTP_403_FORBIDDEN) + try: + seal_attack(game, request.user) + except GameError as e: + return _err(e) + return Response(serialize_game(game, request.user)) + + +class GameDefendAPI(APIView): + """Defender beats a single table row with a chosen hand card.""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, game_id): + game = get_object_or_404(Game, id=game_id) + if not game.players.filter(user=request.user).exists(): + return Response(status=status.HTTP_403_FORBIDDEN) + ser = DefendSerializer(data=request.data) + ser.is_valid(raise_exception=True) + d = ser.validated_data + try: + defend(game, request.user, d["table_card_id"], d["card_id"]) + except GameError as e: + return _err(e) + return Response(serialize_game(game, request.user)) + + +class GameTakeAPI(APIView): + """Defender takes the whole table into hand and draws from stock.""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, game_id): + game = get_object_or_404(Game, id=game_id) + if not game.players.filter(user=request.user).exists(): + return Response(status=status.HTTP_403_FORBIDDEN) + try: + take_table(game, request.user) + except GameError as e: + return _err(e) + return Response(serialize_game(game, request.user)) + + +class GameBitoAPI(APIView): + """Successful round: discard defended cards and rotate attacker/defender.""" + + permission_classes = [permissions.IsAuthenticated] + + def post(self, request, game_id): + game = get_object_or_404(Game, id=game_id) + if not game.players.filter(user=request.user).exists(): + return Response(status=status.HTTP_403_FORBIDDEN) + try: + bito(game, request.user) + except GameError as e: + return _err(e) + return Response(serialize_game(game, request.user)) + + +class LobbyMessagesAPI(APIView): + """List recent lobby chat messages or append a new one (members only).""" + + permission_classes = [permissions.IsAuthenticated] + + def get(self, request, lobby_id): + lobby = get_object_or_404(Lobby, id=lobby_id) + if not lobby.players.filter(user=request.user).exclude(status="left").exists(): + return Response(status=status.HTTP_403_FORBIDDEN) + msgs = list(Message.get_lobby_messages(lobby, limit=100)) + msgs.reverse() + return Response( + [ + { + "id": str(m.id), + "sender_id": str(m.sender_id), + "username": m.sender.username, + "content": m.content, + "sent_at": m.sent_at.isoformat(), + } + for m in msgs + ] + ) + + def post(self, request, lobby_id): + lobby = get_object_or_404(Lobby, id=lobby_id) + if not lobby.players.filter(user=request.user).exclude(status="left").exists(): + return Response(status=status.HTTP_403_FORBIDDEN) + ser = LobbyMessageSerializer(data=request.data) + ser.is_valid(raise_exception=True) + m = Message.objects.create( + sender=request.user, + lobby=lobby, + content=ser.validated_data["content"], + ) + broadcast_lobby( + lobby.id, + "lobby_chat", + { + "id": str(m.id), + "sender_id": str(m.sender_id), + "username": m.sender.username, + "content": m.content, + "sent_at": m.sent_at.isoformat(), + }, + ) + return Response( + { + "id": str(m.id), + "sender_id": str(m.sender_id), + "username": m.sender.username, + "content": m.content, + "sent_at": m.sent_at.isoformat(), + }, + status=status.HTTP_201_CREATED, + ) diff --git a/game/consumers.py b/game/consumers.py new file mode 100644 index 0000000..7096783 --- /dev/null +++ b/game/consumers.py @@ -0,0 +1,92 @@ +"""Async Channels consumers for lobby and per-game WebSocket channels. + +Clients connect with session authentication (see ``AuthMiddlewareStack``). Each +connection joins a single group and receives ``game.event`` fan-out messages +originating from :mod:`game.realtime`. +""" + +from channels.db import database_sync_to_async +from channels.generic.websocket import AsyncJsonWebsocketConsumer +from django.contrib.auth.models import AnonymousUser + +from game.models import Game, LobbyPlayer + + +@database_sync_to_async +def user_in_lobby(user_id, lobby_id): + """Return whether the user has a non-left membership in the lobby. + + Args: + user_id: Primary key of :class:`~django.contrib.auth.models.User`. + lobby_id: Lobby UUID string or UUID. + + Returns: + True if an active :class:`~game.models.LobbyPlayer` row exists. + """ + return LobbyPlayer.objects.filter( + lobby_id=lobby_id, user_id=user_id + ).exclude(status="left").exists() + + +@database_sync_to_async +def user_in_game(user_id, game_id): + """Return whether the user participates in the given game. + + Args: + user_id: User primary key. + game_id: Game UUID. + + Returns: + True if a :class:`~game.models.GamePlayer` row links the pair. + """ + return Game.objects.filter(id=game_id, players__user_id=user_id).exists() + + +class LobbyConsumer(AsyncJsonWebsocketConsumer): + """Stream lobby-scoped events (chat, membership, game start) to members.""" + + async def connect(self): + """Accept the socket after auth + membership checks.""" + self.lobby_id = str(self.scope["url_route"]["kwargs"]["lobby_id"]) + user = self.scope["user"] + if isinstance(user, AnonymousUser): + await self.close(code=4401) + return + if not await user_in_lobby(user.id, self.lobby_id): + await self.close(code=4403) + return + await self.channel_layer.group_add(f"lobby_{self.lobby_id}", self.channel_name) + await self.accept() + + async def disconnect(self, code): + """Leave the lobby group when the socket closes.""" + await self.channel_layer.group_discard(f"lobby_{self.lobby_id}", self.channel_name) + + async def game_event(self, event): + """Forward channel-layer messages to the browser as JSON.""" + await self.send_json(event["message"]) + + +class GameConsumer(AsyncJsonWebsocketConsumer): + """Stream table updates to everyone seated in the same ``Game``.""" + + async def connect(self): + """Accept after verifying the user is one of the game's players.""" + self.game_id = str(self.scope["url_route"]["kwargs"]["game_id"]) + user = self.scope["user"] + if isinstance(user, AnonymousUser): + await self.close(code=4401) + return + if not await user_in_game(user.id, self.game_id): + await self.close(code=4403) + return + await self.channel_layer.group_add(f"game_{self.game_id}", self.channel_name) + await self.accept() + + async def disconnect(self, code): + """Detach from the game broadcast group.""" + await self.channel_layer.group_discard(f"game_{self.game_id}", self.channel_name) + + async def game_event(self, event): + """Push server events (moves, phase changes) to the client.""" + await self.send_json(event["message"]) diff --git a/game/migrations/0004_game_runtime_state.py b/game/migrations/0004_game_runtime_state.py new file mode 100644 index 0000000..bfa878f --- /dev/null +++ b/game/migrations/0004_game_runtime_state.py @@ -0,0 +1,18 @@ +# Generated manually for Durak runtime state (phase, attacker/defender). + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("game", "0003_turn_move"), + ] + + operations = [ + migrations.AddField( + model_name="game", + name="runtime_state", + field=models.JSONField(blank=True, default=dict), + ), + ] diff --git a/game/models.py b/game/models.py index 5d6d321..580f81d 100644 --- a/game/models.py +++ b/game/models.py @@ -394,6 +394,8 @@ class Game(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) lobby = models.ForeignKey(Lobby, on_delete=models.CASCADE) trump_card = models.ForeignKey('Card', on_delete=models.PROTECT, related_name='as_trump') + # attacker_id, defender_id, phase: build | defend | between + runtime_state = models.JSONField(default=dict, blank=True) started_at = models.DateTimeField(auto_now_add=True) finished_at = models.DateTimeField(null=True, blank=True) status = models.CharField(max_length=15, choices=[('in_progress', 'In Progress'), ('finished', 'Finished')]) @@ -1178,6 +1180,15 @@ def discard_cards(cls, game, cards): """ last_position = cls.objects.filter(game=game).count() discard_entries = [] + for i, card in enumerate(cards): + discard_entries.append( + cls.objects.create( + game=game, + card=card, + position=last_position + i + 1, + ) + ) + return discard_entries class Turn(models.Model): diff --git a/game/realtime.py b/game/realtime.py new file mode 100644 index 0000000..6948a5a --- /dev/null +++ b/game/realtime.py @@ -0,0 +1,59 @@ +"""Synchronous helpers that publish JSON events to Django Channels groups. + +Consumers subscribe to ``lobby_{uuid}`` and ``game_{uuid}``; these helpers use +``group_send`` with type ``game.event`` so :class:`game.consumers.LobbyConsumer` +and :class:`game.consumers.GameConsumer` can relay payloads to browsers. +""" + +from asgiref.sync import async_to_sync +from channels.layers import get_channel_layer + + +def _send_group(group: str, message: dict): + """Deliver ``message`` to every socket in ``group``. + + Args: + group: Channel layer group name (e.g. ``lobby_``). + message: JSON-serializable dict forwarded to clients. + + Returns: + None: No-op when the channel layer is not configured. + """ + layer = get_channel_layer() + if not layer: + return + async_to_sync(layer.group_send)( + group, + { + "type": "game.event", + "message": message, + }, + ) + + +def broadcast_lobby(lobby_id, event: str, payload: dict | None = None): + """Notify every subscriber of a lobby room. + + Args: + lobby_id: UUID of the :class:`~game.models.Lobby`. + event: Short event name (e.g. ``player_joined``). + payload: Optional extra fields merged into the outbound message. + """ + _send_group( + f"lobby_{lobby_id}", + {"event": event, "payload": payload or {}}, + ) + + +def broadcast_game(game_id, event: str, payload: dict | None = None): + """Notify every subscriber of a running table. + + Args: + game_id: UUID of the :class:`~game.models.Game`. + event: Short event name (e.g. ``\"game_update\"``). + payload: Optional extra fields for clients. + """ + _send_group( + f"game_{game_id}", + {"event": event, "payload": payload or {}}, + ) diff --git a/game/routing.py b/game/routing.py index 9338e54..850b845 100644 --- a/game/routing.py +++ b/game/routing.py @@ -1,5 +1,8 @@ from django.urls import path -websocket_urlpatterns = [ +from game import consumers +websocket_urlpatterns = [ + path("ws/lobbies//", consumers.LobbyConsumer.as_asgi()), + path("ws/games//", consumers.GameConsumer.as_asgi()), ] diff --git a/game/serializers.py b/game/serializers.py new file mode 100644 index 0000000..1a2cb32 --- /dev/null +++ b/game/serializers.py @@ -0,0 +1,73 @@ +"""Request-body serializers for game REST endpoints. + +These are intentionally lightweight (no ``ModelSerializer``) because responses +are built from :func:`game.services.serialize_lobby` / +:func:`game.services.serialize_game`. +""" + +from rest_framework import serializers + + +class LobbyCreateSerializer(serializers.Serializer): + """Validate payload for :class:`game.api_views.LobbyListCreateAPI` POST.""" + + name = serializers.CharField(max_length=100) + is_private = serializers.BooleanField(default=False) + password = serializers.CharField( + max_length=128, required=False, allow_blank=True, write_only=True + ) + + def validate(self, attrs): + """Require a non-empty password when ``is_private`` is true. + + Args: + attrs: Incoming validated fields. + + Returns: + The same dict, possibly normalized. + + Raises: + serializers.ValidationError: When a private lobby lacks a password. + """ + if attrs.get("is_private") and not (attrs.get("password") or "").strip(): + raise serializers.ValidationError( + {"password": "Password is required for a private lobby."} + ) + return attrs + max_players = serializers.IntegerField(min_value=2, max_value=8, default=4) + card_count = serializers.ChoiceField(choices=[24, 36, 52], default=36) + is_transferable = serializers.BooleanField(default=False) + neighbor_throw_only = serializers.BooleanField(default=False) + allow_jokers = serializers.BooleanField(default=False) + turn_time_limit = serializers.IntegerField(required=False, allow_null=True, min_value=0) + + +class LobbyJoinSerializer(serializers.Serializer): + """Optional password when joining a private lobby.""" + password = serializers.CharField( + max_length=128, required=False, allow_blank=True, write_only=True + ) + + +class ReadySerializer(serializers.Serializer): + """Boolean ready flag for lobby members.""" + ready = serializers.BooleanField() + + +class AttackSerializer(serializers.Serializer): + """List of card UUIDs played from the actor's hand.""" + card_ids = serializers.ListField( + child=serializers.UUIDField(), + allow_empty=False, + ) + + +class DefendSerializer(serializers.Serializer): + """Table row id plus defending card id.""" + table_card_id = serializers.UUIDField() + card_id = serializers.UUIDField() + + +class LobbyMessageSerializer(serializers.Serializer): + """Free-text lobby chat body.""" + content = serializers.CharField(max_length=4000) diff --git a/game/services.py b/game/services.py new file mode 100644 index 0000000..36f1595 --- /dev/null +++ b/game/services.py @@ -0,0 +1,804 @@ +"""Business logic for multiplayer Durak (podkidnoy). + +This module owns lobby lifecycle, dealing from the shared card pool, table +phases (build / defend / between), and persistence updates on existing Django +models. It also triggers WebSocket broadcasts via :mod:`game.realtime`. + +Typical flow: + #. Players create or join a lobby, toggle ready, owner calls ``start_game``. + #. Attacker opens from ``between``, others may throw in during ``build``, + attacker ``seal_attack`` to lock the wave. + #. Defender uses ``defend`` on each row or ``take_table``; after full defense, + attacker ``bito`` to discard and rotate roles. +""" + +from __future__ import annotations + +import secrets +from typing import Iterable +from uuid import UUID + +from django.contrib.auth import get_user_model +from django.contrib.auth.hashers import check_password, make_password +from django.db import transaction +from django.db.models import Max +from django.utils import timezone + +from game.models import ( + Card, + DiscardPile, + Game, + GameDeck, + GamePlayer, + Lobby, + LobbyPlayer, + LobbySettings, + Move, + PlayerHand, + TableCard, + Turn, +) +from game.realtime import broadcast_game, broadcast_lobby + +User = get_user_model() + +PHASE_BUILD = "build" +PHASE_DEFEND = "defend" +PHASE_BETWEEN = "between" + + +def rank_values_for_deck(card_count: int) -> list[int]: + """Return ordered rank *values* (ints) included in a 24/36/52-card shoe. + + Args: + card_count: One of ``24``, ``36``, or ``52``. + + Returns: + List of rank values from low to high (e.g. six..ace for 36 cards). + + Raises: + ValueError: If ``card_count`` is not supported. + """ + if card_count == 52: + return list(range(2, 15)) + if card_count == 36: + return list(range(6, 15)) + if card_count == 24: + return list(range(9, 15)) + raise ValueError("Unsupported card_count") + + +class GameError(Exception): + """Domain error with a stable machine-readable ``code`` for API mapping. + + Attributes: + message: Human-readable explanation. + code: Short string such as ``forbidden`` or ``phase``. + """ + + def __init__(self, message: str, code: str = "invalid"): + self.message = message + self.code = code + super().__init__(message) + + +def _rs(game: Game) -> dict: + return dict(game.runtime_state or {}) + + +def _save_rs(game: Game, **updates): + rs = _rs(game) + rs.update(updates) + game.runtime_state = rs + game.save(update_fields=["runtime_state"]) + + +def _refresh_card_counts(game: Game): + for gp in game.players.all(): + n = PlayerHand.objects.filter(game=game, player=gp.user).count() + if gp.cards_remaining != n: + gp.cards_remaining = n + gp.save(update_fields=["cards_remaining"]) + + +def _player_circle(game: Game) -> list[GamePlayer]: + return list(game.players.order_by("seat_position")) + + +def _neighbor_user_ids(game: Game, defender_id: UUID) -> set[UUID]: + players = _player_circle(game) + idx = next(i for i, p in enumerate(players) if p.user_id == defender_id) + n = len(players) + return { + players[(idx - 1) % n].user_id, + players[(idx + 1) % n].user_id, + } + + +def _deck_cards_query(settings: LobbySettings): + values = rank_values_for_deck(settings.card_count) + return Card.objects.filter(special_card__isnull=True, rank__value__in=values) + + +def _pick_first_attacker(game: Game, trump_suit_id) -> UUID: + """Choose the opening attacker by lowest trump, then lowest seat. + + Args: + game: Active game with hands already dealt. + trump_suit_id: Primary key of the trump :class:`~game.models.CardSuit`. + + Returns: + UUID of the user who should attack first. + """ + best: tuple[int, int, UUID] | None = None + for gp in _player_circle(game): + trumps = ( + PlayerHand.objects.filter(game=game, player=gp.user, card__suit_id=trump_suit_id) + .select_related("card__rank") + ) + for ph in trumps: + val = ph.card.rank.value + key = (val, gp.seat_position, gp.user_id) + if best is None or key < best: + best = key + if best: + return best[2] + return _player_circle(game)[0].user_id + + +def _draw_for_player(game: Game, user: User, target_hand: int = 6): + while True: + gp = GamePlayer.objects.get(game=game, user=user) + if gp.cards_remaining >= target_hand: + break + entry = GameDeck.get_top_card(game) + if not entry: + break + card = entry.card + entry.delete() + max_order = PlayerHand.objects.filter(game=game, player=user).aggregate( + m=Max("order_in_hand") + )["m"] + next_order = (max_order or 0) + 1 + PlayerHand.objects.create( + game=game, + player=user, + card=card, + order_in_hand=next_order, + ) + gp.cards_remaining += 1 + gp.save(update_fields=["cards_remaining"]) + + +def _draw_round_after_discard(game: Game, start_user_id: UUID): + order = _player_circle(game) + idx = next(i for i, p in enumerate(order) if p.user_id == start_user_id) + n = len(order) + for k in range(n): + _draw_for_player(game, order[(idx + k) % n].user, 6) + _refresh_card_counts(game) + + +def _maybe_finish_game(game: Game): + if game.status != "in_progress": + return + deck_empty = not GameDeck.objects.filter(game=game).exists() + if not deck_empty: + return + holders = [gp for gp in _player_circle(game) if gp.cards_remaining > 0] + if len(holders) == 1: + game.status = "finished" + game.loser = holders[0].user + game.finished_at = timezone.now() + game.save(update_fields=["status", "loser", "finished_at"]) + lobby = game.lobby + lobby.status = "waiting" + lobby.save(update_fields=["status"]) + LobbyPlayer.objects.filter(lobby=lobby, status="playing").update(status="waiting") + broadcast_game(game.id, "game_finished", {"loser_id": str(game.loser_id)}) + broadcast_lobby(lobby.id, "game_finished", {"game_id": str(game.id)}) + + +def _rotate_roles_after_success(game: Game): + rs = _rs(game) + old_def = UUID(rs["defender_id"]) + players = _player_circle(game) + idx_d = next(i for i, p in enumerate(players) if p.user_id == old_def) + new_att = old_def + new_def = players[(idx_d + 1) % len(players)].user_id + _save_rs(game, attacker_id=str(new_att), defender_id=str(new_def), phase=PHASE_BETWEEN) + + +def _clear_table_to_discard(game: Game): + cards: list[Card] = [] + for tc in TableCard.objects.filter(game=game).order_by("id"): + cards.append(tc.attack_card) + if tc.defense_card: + cards.append(tc.defense_card) + TableCard.objects.filter(game=game).delete() + if cards: + DiscardPile.discard_cards(game, cards) + + +def _clear_table_to_hand(game: Game, user: User): + for tc in TableCard.objects.filter(game=game).order_by("id"): + for c in (tc.attack_card, tc.defense_card): + if not c: + continue + max_order = PlayerHand.objects.filter(game=game, player=user).aggregate( + m=Max("order_in_hand") + )["m"] + next_order = (max_order or 0) + 1 + PlayerHand.objects.create( + game=game, + player=user, + card=c, + order_in_hand=next_order, + ) + TableCard.objects.filter(game=game).delete() + _refresh_card_counts(game) + + +def _table_attack_ranks(game: Game) -> set[int]: + return set( + TableCard.objects.filter(game=game).values_list("attack_card__rank__value", flat=True) + ) + + +def _defender_hand_size(game: Game, defender_id: UUID) -> int: + return PlayerHand.objects.filter(game=game, player_id=defender_id).count() + + +def _count_undefended(game: Game) -> int: + return TableCard.objects.filter(game=game, defense_card__isnull=True).count() + + +def _all_defended(game: Game) -> bool: + qs = TableCard.objects.filter(game=game) + return qs.exists() and not qs.filter(defense_card__isnull=True).exists() + + +@transaction.atomic +def create_lobby( + owner: User, + name: str, + *, + is_private: bool = False, + password: str | None = None, + max_players: int = 4, + card_count: int = 36, + is_transferable: bool = False, + neighbor_throw_only: bool = False, + allow_jokers: bool = False, + turn_time_limit: int | None = None, +) -> Lobby: + """Create a lobby, default :class:`~game.models.LobbySettings`, and owner seat. + + Args: + owner: Authenticated user who becomes lobby owner. + name: Display name. + is_private: Whether a password is required to join. + password: Plain text; stored hashed when private. + max_players: Upper bound enforced by :meth:`game.models.Lobby.is_full`. + card_count: Deck size (24, 36, or 52). + is_transferable: Rule flag (reserved for future transfer logic). + neighbor_throw_only: Restrict throw-in to defender's neighbors. + allow_jokers: Whether jokers may appear in the shoe (requires data). + turn_time_limit: Optional per-turn cap in seconds. + + Returns: + The newly created :class:`~game.models.Lobby` instance. + """ + lobby = Lobby.objects.create( + owner=owner, + name=name, + is_private=is_private, + password_hash=make_password(password) if (is_private and password) else None, + status="waiting", + ) + LobbySettings.objects.create( + lobby=lobby, + max_players=max_players, + card_count=card_count, + is_transferable=is_transferable, + neighbor_throw_only=neighbor_throw_only, + allow_jokers=allow_jokers, + turn_time_limit=turn_time_limit, + ) + LobbyPlayer.objects.create(lobby=lobby, user=owner, status="waiting") + broadcast_lobby(lobby.id, "lobby_created", {"lobby_id": str(lobby.id)}) + return lobby + + +@transaction.atomic +def join_lobby(lobby: Lobby, user: User, password: str | None = None) -> LobbyPlayer: + """Add ``user`` to ``lobby`` or reactivate a previously left membership. + + Args: + lobby: Target lobby. + user: Joining user. + password: Required plaintext password when ``lobby.is_private``. + + Returns: + The active :class:`~game.models.LobbyPlayer` row. + + Raises: + GameError: If the lobby is full, closed, password is wrong, or duplicate. + """ + if lobby.status == "closed": + raise GameError("Lobby is closed", "closed") + if lobby.is_full(): + raise GameError("Lobby is full", "full") + if lobby.is_private: + if not lobby.password_hash or not check_password(password or "", lobby.password_hash): + raise GameError("Invalid password", "auth") + if LobbyPlayer.objects.filter(lobby=lobby, user=user).exclude(status="left").exists(): + raise GameError("Already in lobby", "duplicate") + if LobbyPlayer.objects.filter(user=user, lobby=lobby, status="left").exists(): + lp = LobbyPlayer.objects.get(user=user, lobby=lobby) + lp.status = "waiting" + lp.save(update_fields=["status"]) + else: + lp = LobbyPlayer.objects.create(lobby=lobby, user=user, status="waiting") + broadcast_lobby(lobby.id, "player_joined", {"user_id": str(user.id)}) + return lp + + +@transaction.atomic +def leave_lobby(lobby: Lobby, user: User): + """Mark every active membership of ``user`` in ``lobby`` as left. + + Args: + lobby: Lobby to exit. + user: Leaving user. + + Raises: + GameError: If the user had no active membership. + """ + qs = LobbyPlayer.objects.filter(lobby=lobby, user=user).exclude(status="left") + if not qs.exists(): + raise GameError("Not in lobby", "not_found") + for lp in qs: + lp.leave_lobby() + broadcast_lobby(lobby.id, "player_left", {"user_id": str(user.id)}) + + +@transaction.atomic +def set_ready(lobby: Lobby, user: User, ready: bool): + """Toggle waiting/ready status for a member. + + Args: + lobby: Lobby context. + user: Member toggling readiness. + ready: ``True`` for ready, ``False`` for waiting. + + Raises: + GameError: If ``user`` is not an active member. + """ + lp = LobbyPlayer.objects.filter(lobby=lobby, user=user).exclude(status="left").first() + if not lp: + raise GameError("Not in lobby", "not_found") + lp.status = "ready" if ready else "waiting" + lp.save(update_fields=["status"]) + broadcast_lobby(lobby.id, "ready_changed", {"user_id": str(user.id), "ready": ready}) + + +@transaction.atomic +def start_game(lobby: Lobby, user: User) -> Game: + """Deal cards, set trump, and spawn an in-progress :class:`~game.models.Game`. + + Args: + lobby: Must be in ``waiting`` with at least two ``ready`` members. + user: Lobby owner (only owners may start). + + Returns: + Fresh :class:`~game.models.Game` in ``between`` phase. + + Raises: + GameError: On permission, deck data, duplicate active game, or rules. + """ + if lobby.owner_id != user.id: + raise GameError("Only owner can start", "forbidden") + if Game.objects.filter(lobby=lobby, status="in_progress").exists(): + raise GameError("Game already in progress", "state") + if not lobby.can_start_game(): + raise GameError("Cannot start game", "precondition") + settings = lobby.settings + ready_players = list( + lobby.players.filter(status="ready").select_related("user").order_by("user__username") + ) + if len(ready_players) < 2: + raise GameError("Need at least 2 ready players", "precondition") + + lobby.status = "playing" + lobby.save(update_fields=["status"]) + for lp in lobby.players.filter(status__in=["waiting", "ready"]): + if lp in ready_players: + lp.status = "playing" + lp.save(update_fields=["status"]) + else: + lp.leave_lobby() + + deck_q = _deck_cards_query(settings) + card_ids = list(deck_q.values_list("id", flat=True)) + if len(card_ids) < 12: + raise GameError("Not enough cards in database for this deck size", "config") + secrets.SystemRandom().shuffle(card_ids) + trump_id = card_ids[-1] + rest = card_ids[:-1] + + game = Game.objects.create( + lobby=lobby, + trump_card_id=trump_id, + status="in_progress", + runtime_state={}, + ) + for pos, cid in enumerate(rest): + GameDeck.objects.create(game=game, card_id=cid, position=pos) + + for seat, lp in enumerate(ready_players, start=1): + GamePlayer.objects.create( + game=game, + user=lp.user, + seat_position=seat, + cards_remaining=0, + ) + + trump_card = Card.objects.get(id=trump_id) + for gp in _player_circle(game): + for _ in range(6): + entry = GameDeck.get_top_card(game) + if not entry: + break + c = entry.card + entry.delete() + PlayerHand.objects.create( + game=game, + player=gp.user, + card=c, + order_in_hand=None, + ) + _refresh_card_counts(game) + + first_attacker = _pick_first_attacker(game, trump_card.suit_id) + players = _player_circle(game) + idx_a = next(i for i, p in enumerate(players) if p.user_id == first_attacker) + defender = players[(idx_a + 1) % len(players)].user_id + _save_rs( + game, + attacker_id=str(first_attacker), + defender_id=str(defender), + phase=PHASE_BETWEEN, + ) + + broadcast_lobby(lobby.id, "game_started", {"game_id": str(game.id)}) + broadcast_game(game.id, "game_started", {}) + return game + + +def serialize_lobby(lobby: Lobby) -> dict: + """Build a JSON-serializable lobby snapshot for REST responses. + + Args: + lobby: Lobby including related settings and players. + + Returns: + Dict with ids as strings, nested ``settings``, ``players``, and optional + ``active_game_id``. + """ + settings = lobby.settings + return { + "id": str(lobby.id), + "name": lobby.name, + "owner_id": str(lobby.owner_id), + "is_private": lobby.is_private, + "status": lobby.status, + "created_at": lobby.created_at.isoformat(), + "settings": { + "max_players": settings.max_players, + "card_count": settings.card_count, + "is_transferable": settings.is_transferable, + "neighbor_throw_only": settings.neighbor_throw_only, + "allow_jokers": settings.allow_jokers, + "turn_time_limit": settings.turn_time_limit, + }, + "players": [ + { + "user_id": str(p.user_id), + "username": p.user.username, + "status": p.status, + } + for p in lobby.players.exclude(status="left").select_related("user") + ], + "active_game_id": _active_game_id(lobby), + } + + +def _active_game_id(lobby: Lobby) -> str | None: + g = Game.objects.filter(lobby=lobby, status="in_progress").order_by("-started_at").first() + return str(g.id) if g else None + + +def serialize_game(game: Game, viewer: User) -> dict: + """Return game state visible to ``viewer`` (only their hand is revealed). + + Args: + game: Game to serialize. + viewer: Authenticated subject; opponents see counts only. + + Returns: + Dict with ``table``, ``runtime``, ``trump_card``, ``deck_remaining``, etc. + """ + _refresh_card_counts(game) + trump = game.trump_card + rs = _rs(game) + table = [] + for tc in TableCard.objects.filter(game=game).select_related( + "attack_card__suit", "attack_card__rank", "defense_card__suit", "defense_card__rank" + ): + table.append( + { + "id": str(tc.id), + "attack": _card_json(tc.attack_card), + "defense": _card_json(tc.defense_card) if tc.defense_card else None, + } + ) + players_out = [] + for gp in _player_circle(game): + hand = None + if gp.user_id == viewer.id: + hand = [ + {**_card_json(ph.card), "hand_id": str(ph.id)} + for ph in PlayerHand.objects.filter(game=game, player=gp.user) + .select_related("card__suit", "card__rank") + .order_by("order_in_hand", "id") + ] + players_out.append( + { + "user_id": str(gp.user_id), + "username": gp.user.username, + "seat_position": gp.seat_position, + "cards_remaining": gp.cards_remaining, + "hand": hand, + } + ) + deck_left = GameDeck.objects.filter(game=game).count() + return { + "id": str(game.id), + "lobby_id": str(game.lobby_id), + "status": game.status, + "trump_card": _card_json(trump), + "deck_remaining": deck_left, + "runtime": { + "attacker_id": rs.get("attacker_id"), + "defender_id": rs.get("defender_id"), + "phase": rs.get("phase"), + }, + "players": players_out, + "table": table, + "loser_id": str(game.loser_id) if game.loser_id else None, + } + + +def _card_json(card: Card | None) -> dict | None: + if not card: + return None + return { + "id": str(card.id), + "suit": card.suit.name, + "rank": card.rank.name, + "value": card.rank.value, + } + + +def _ensure_turn(game: Game, user: User) -> Turn: + t = Turn.get_current_turn(game) + if t and t.player_id == user.id: + return t + return Turn.create_next_turn(game, user) + + +@transaction.atomic +def play_attack(game: Game, user: User, card_ids: list[UUID]): + """Place attacking or throw-in cards from the actor's hand onto the table. + + Args: + game: Active game. + user: Attacker (open or extend) or throw-in player during ``build``. + card_ids: Cards currently held by ``user``. + + Raises: + GameError: On wrong phase, illegal ranks, capacity, or ownership. + """ + if game.status != "in_progress": + raise GameError("Game not active", "finished") + rs = _rs(game) + phase = rs.get("phase") + if phase not in (PHASE_BUILD, PHASE_BETWEEN): + raise GameError("Cannot attack now", "phase") + + settings = game.lobby.settings + attacker_id = UUID(rs["attacker_id"]) + defender_id = UUID(rs["defender_id"]) + + if phase == PHASE_BETWEEN: + if user.id != attacker_id: + raise GameError("Only attacker may open", "turn") + if TableCard.objects.filter(game=game).exists(): + raise GameError("Table must be empty", "state") + if not card_ids: + raise GameError("Play at least one card", "cards") + cards = _cards_in_hand(game, user, card_ids) + ranks = {c.rank_id for c in cards} + if len(ranks) != 1: + raise GameError("Attack cards must share rank", "cards") + _save_rs(game, phase=PHASE_BUILD) + else: + if user.id == defender_id: + raise GameError("Defender cannot attack", "turn") + if user.id != attacker_id: + if phase != PHASE_BUILD: + raise GameError("Cannot throw in now", "phase") + eligible = {attacker_id, defender_id} + others = {p.user_id for p in _player_circle(game)} - eligible + if user.id not in others: + raise GameError("Only other players may throw in", "turn") + if settings.neighbor_throw_only: + if user.id not in _neighbor_user_ids(game, defender_id): + raise GameError("Only neighbors may throw in", "rules") + if not card_ids: + raise GameError("No cards", "cards") + cards = _cards_in_hand(game, user, card_ids) + allowed_ranks = _table_attack_ranks(game) + for c in cards: + if c.rank.value not in allowed_ranks: + raise GameError("Card rank must match table", "cards") + max_cards = _defender_hand_size(game, defender_id) + on_table = TableCard.objects.filter(game=game).count() + if on_table + len(cards) > max_cards: + raise GameError("Too many cards on table", "rules") + + turn = _ensure_turn(game, user) + for c in cards: + ph = PlayerHand.objects.get(game=game, player=user, card=c) + ph.remove_from_hand() + tc = TableCard.objects.create(game=game, attack_card=c) + Move.objects.create(turn=turn, table_card=tc, action_type="attack") + + _refresh_card_counts(game) + broadcast_game(game.id, "game_update", {}) + _maybe_finish_game(game) + + +def _cards_in_hand(game: Game, user: User, card_ids: Iterable[UUID]) -> list[Card]: + ids = list(card_ids) + hands = list(PlayerHand.objects.filter(game=game, player=user, card_id__in=ids)) + if len(hands) != len(ids): + raise GameError("Invalid hand cards", "cards") + return [h.card for h in hands] + + +@transaction.atomic +def seal_attack(game: Game, user: User): + """Close the attack wave so the defender must beat or take. + + Args: + game: Active game in ``build`` with undefended rows. + user: Primary attacker. + + Raises: + GameError: If caller is not the attacker or phase is wrong. + """ + if game.status != "in_progress": + raise GameError("Game not active", "finished") + rs = _rs(game) + if UUID(rs["attacker_id"]) != user.id: + raise GameError("Only attacker can seal", "turn") + if rs.get("phase") != PHASE_BUILD: + raise GameError("Not in build phase", "phase") + if not TableCard.objects.filter(game=game).exists(): + raise GameError("Nothing to seal", "state") + if _count_undefended(game) == 0: + raise GameError("Cannot seal after defense started", "state") + _save_rs(game, phase=PHASE_DEFEND) + broadcast_game(game.id, "game_update", {}) + + +@transaction.atomic +def defend(game: Game, user: User, table_card_id: UUID, card_id: UUID): + """Cover a single attack row with a legal defense card. + + Args: + game: Active game in ``defend`` phase. + user: Defender. + table_card_id: Row to beat. + card_id: Card from defender's hand. + + Raises: + GameError: If the defense is illegal or row already covered. + """ + if game.status != "in_progress": + raise GameError("Game not active", "finished") + rs = _rs(game) + if UUID(rs["defender_id"]) != user.id: + raise GameError("Only defender acts", "turn") + if rs.get("phase") != PHASE_DEFEND: + raise GameError("Not defense phase", "phase") + tc = TableCard.objects.select_related("attack_card").get(game=game, id=table_card_id) + if tc.defense_card_id: + raise GameError("Already defended", "state") + defense_card = PlayerHand.objects.get(game=game, player=user, card_id=card_id).card + trump = game.trump_card.suit + if not tc.is_valid_defense(defense_card, trump): + raise GameError("Illegal defense card", "cards") + ph = PlayerHand.objects.get(game=game, player=user, card=defense_card) + ph.remove_from_hand() + tc.defense_card = defense_card + tc.save(update_fields=["defense_card"]) + turn = _ensure_turn(game, user) + Move.objects.create(turn=turn, table_card=tc, action_type="defend") + _refresh_card_counts(game) + broadcast_game(game.id, "game_update", {}) + _maybe_finish_game(game) + + +@transaction.atomic +def take_table(game: Game, user: User): + """Defender picks up the whole table; hands refill from the deck. + + Args: + game: Active game in ``defend``. + user: Defender. + + Raises: + GameError: If phase or role is wrong. + """ + if game.status != "in_progress": + raise GameError("Game not active", "finished") + rs = _rs(game) + if UUID(rs["defender_id"]) != user.id: + raise GameError("Only defender may take", "turn") + if rs.get("phase") != PHASE_DEFEND: + raise GameError("Not defense phase", "phase") + if not TableCard.objects.filter(game=game).exists(): + raise GameError("Table empty", "state") + + turn = _ensure_turn(game, user) + for tc in TableCard.objects.filter(game=game): + Move.objects.create(turn=turn, table_card=tc, action_type="pickup") + + _clear_table_to_hand(game, user) + _save_rs(game, phase=PHASE_BETWEEN) + attacker = UUID(rs["attacker_id"]) + _draw_round_after_discard(game, attacker) + broadcast_game(game.id, "game_update", {}) + _maybe_finish_game(game) + + +@transaction.atomic +def bito(game: Game, user: User): + """Attacker confirms successful defense; discards table and rotates roles. + + Args: + game: Active game where every row is defended. + user: Primary attacker. + + Raises: + GameError: If any row is still open or caller is not the attacker. + """ + if game.status != "in_progress": + raise GameError("Game not active", "finished") + rs = _rs(game) + if UUID(rs["attacker_id"]) != user.id: + raise GameError("Only attacker can call bito", "turn") + if rs.get("phase") != PHASE_DEFEND: + raise GameError("Wrong phase", "phase") + if not _all_defended(game): + raise GameError("Not all cards defended", "state") + + _clear_table_to_discard(game) + old_att = UUID(rs["attacker_id"]) + _rotate_roles_after_success(game) + _draw_round_after_discard(game, old_att) + broadcast_game(game.id, "game_update", {}) + _maybe_finish_game(game) diff --git a/game/templates/game/lobby_detail.html b/game/templates/game/lobby_detail.html new file mode 100644 index 0000000..06ee88e --- /dev/null +++ b/game/templates/game/lobby_detail.html @@ -0,0 +1,151 @@ +{% extends "base.html" %} +{% block title %}Lobby — Fools Arena{% endblock %} +{% block content %} +
+

← All lobbies

+

Lobby

+

+  
    +

    + + + +

    +
    +
    +

    Lobby chat

    +
    +
    + + +
    +
    + +{% endblock %} diff --git a/game/templates/game/lobby_list.html b/game/templates/game/lobby_list.html new file mode 100644 index 0000000..c5dbf9a --- /dev/null +++ b/game/templates/game/lobby_list.html @@ -0,0 +1,95 @@ +{% extends "base.html" %} +{% block title %}Lobbies — Fools Arena{% endblock %} +{% block content %} +
    +

    Open lobbies

    +

    Loading…

    +
      +
      +
      +

      Create lobby

      +
      + + + + + + + + +
      +

      +
      + +{% endblock %} diff --git a/game/templates/game/play.html b/game/templates/game/play.html new file mode 100644 index 0000000..b6ba578 --- /dev/null +++ b/game/templates/game/play.html @@ -0,0 +1,194 @@ +{% extends "base.html" %} +{% block title %}Table — Fools Arena{% endblock %} +{% block content %} +

      ← Lobby

      +

      Game

      +

      +

      +

      +
      +

      Your hand

      +
      +

      +

      + +{% endblock %} diff --git a/game/tests/conftest.py b/game/tests/conftest.py new file mode 100644 index 0000000..184f45c --- /dev/null +++ b/game/tests/conftest.py @@ -0,0 +1,14 @@ +"""Pytest fixtures for game API and service tests.""" + +import pytest +from django.core.management import call_command + + +@pytest.fixture +def durak_deck_36(db): + """Ensure a standard 36-card deck exists in the database (idempotent). + + Returns: + None: Modifies the database in place. + """ + call_command("init_game_data", deck_size=36) diff --git a/game/tests/test_game_api.py b/game/tests/test_game_api.py new file mode 100644 index 0000000..d631532 --- /dev/null +++ b/game/tests/test_game_api.py @@ -0,0 +1,96 @@ +"""HTTP tests for `/api/game/` lobby and gameplay endpoints.""" + +import pytest +from django.urls import reverse +from rest_framework import status +from rest_framework.test import APIClient + +from game.models import Game + + +@pytest.mark.django_db +class TestGameLobbyAPI: + """Integration tests using DRF APIClient and session auth.""" + + @pytest.fixture + def api(self): + """Returns: + APIClient: Unauthenticated REST client. + """ + return APIClient() + + def test_list_requires_auth(self, api): + """Unauthenticated GET on lobby list should return 403.""" + url = reverse("api-lobby-list") + r = api.get(url) + assert r.status_code == status.HTTP_403_FORBIDDEN + + def test_create_and_list_lobby(self, api, test_user, durak_deck_36): + """Authenticated user can create a lobby and see it in the public list.""" + api.force_login(test_user) + create_url = reverse("api-lobby-list") + r = api.post( + create_url, + { + "name": "API Room", + "is_private": False, + "max_players": 4, + "card_count": 36, + }, + format="json", + ) + assert r.status_code == status.HTTP_201_CREATED + lobby_id = r.data["id"] + r2 = api.get(create_url) + assert r2.status_code == status.HTTP_200_OK + assert any(row["id"] == lobby_id for row in r2.data) + + def test_join_ready_start_flow(self, api, test_user, second_user, durak_deck_36): + """Two players: join, ready, owner starts — returns 201 with game payload.""" + api.force_login(test_user) + r = api.post( + reverse("api-lobby-list"), + {"name": "Flow", "is_private": False, "card_count": 36, "max_players": 4}, + format="json", + ) + assert r.status_code == status.HTTP_201_CREATED + lid = r.data["id"] + api.force_login(second_user) + rj = api.post(reverse("api-lobby-join", kwargs={"lobby_id": lid}), {}, format="json") + assert rj.status_code == status.HTTP_200_OK + api.force_login(test_user) + api.post(reverse("api-lobby-ready", kwargs={"lobby_id": lid}), {"ready": True}, format="json") + api.force_login(second_user) + api.post(reverse("api-lobby-ready", kwargs={"lobby_id": lid}), {"ready": True}, format="json") + api.force_login(test_user) + rs = api.post(reverse("api-lobby-start", kwargs={"lobby_id": lid}), {}, format="json") + assert rs.status_code == status.HTTP_201_CREATED + assert "id" in rs.data + assert Game.objects.filter(id=rs.data["id"]).exists() + + def test_game_state_for_player(self, api, test_user, second_user, durak_deck_36): + """GET game state returns runtime phase and masked hands for opponents.""" + api.force_login(test_user) + r = api.post( + reverse("api-lobby-list"), + {"name": "State", "is_private": False, "card_count": 36, "max_players": 4}, + format="json", + ) + lid = r.data["id"] + api.force_login(second_user) + api.post(reverse("api-lobby-join", kwargs={"lobby_id": lid}), {}, format="json") + api.force_login(test_user) + api.post(reverse("api-lobby-ready", kwargs={"lobby_id": lid}), {"ready": True}, format="json") + api.force_login(second_user) + api.post(reverse("api-lobby-ready", kwargs={"lobby_id": lid}), {"ready": True}, format="json") + api.force_login(test_user) + rs = api.post(reverse("api-lobby-start", kwargs={"lobby_id": lid}), {}, format="json") + gid = rs.data["id"] + detail = api.get(reverse("api-game-state", kwargs={"game_id": gid})) + assert detail.status_code == status.HTTP_200_OK + assert detail.data["status"] == "in_progress" + assert detail.data["runtime"]["phase"] == "between" + me = next(p for p in detail.data["players"] if p["user_id"] == str(test_user.id)) + other = next(p for p in detail.data["players"] if p["user_id"] != str(test_user.id)) + assert me["hand"] is not None + assert other["hand"] is None diff --git a/game/tests/test_game_services.py b/game/tests/test_game_services.py new file mode 100644 index 0000000..87bc4bb --- /dev/null +++ b/game/tests/test_game_services.py @@ -0,0 +1,74 @@ +"""Unit tests for `game.services` lobby and gameplay helpers.""" + +import pytest +from django.contrib.auth import get_user_model + +from game.models import Game, Lobby, LobbyPlayer +from game.services import GameError, create_lobby, join_lobby, set_ready, start_game + +User = get_user_model() + + +@pytest.mark.django_db +class TestLobbyServices: + """Tests for lobby creation, joining, and game start preconditions.""" + + def test_create_public_lobby(self, test_user): + """A public lobby should persist with settings and owner membership.""" + lobby = create_lobby(test_user, "Room A", is_private=False) + assert lobby.name == "Room A" + assert not lobby.is_private + assert LobbyPlayer.objects.filter(lobby=lobby, user=test_user).exists() + + def test_private_lobby_requires_password_on_create(self, test_user): + """Serializer layer enforces password; service still stores hash when given.""" + lobby = create_lobby( + test_user, "Secret", is_private=True, password="hunter2" + ) + assert lobby.is_private + assert lobby.password_hash + + def test_join_wrong_password(self, test_user, second_user, user_factory): + """Joining a private lobby with a bad password raises GameError.""" + host = user_factory(username="host_x") + lobby = create_lobby(host, "P", is_private=True, password="ok") + with pytest.raises(GameError) as exc: + join_lobby(lobby, test_user, password="nope") + assert exc.value.code == "auth" + + def test_start_game_requires_owner(self, test_user, second_user, durak_deck_36): + """Only the lobby owner may call `start_game`.""" + lobby = create_lobby(test_user, "G1", is_private=False) + join_lobby(lobby, second_user) + set_ready(lobby, test_user, True) + set_ready(lobby, second_user, True) + with pytest.raises(GameError) as exc: + start_game(lobby, second_user) + assert exc.value.code == "forbidden" + + def test_start_game_happy_path(self, test_user, second_user, durak_deck_36): + """Two ready players and a seeded deck produce an in-progress `Game`.""" + lobby = create_lobby(test_user, "G2", is_private=False) + join_lobby(lobby, second_user) + set_ready(lobby, test_user, True) + set_ready(lobby, second_user, True) + game = start_game(lobby, test_user) + assert game.status == "in_progress" + assert game.players.count() == 2 + assert "attacker_id" in (game.runtime_state or {}) + lobby.refresh_from_db() + assert lobby.status == "playing" + + +@pytest.mark.django_db +def test_active_game_blocks_second_start(test_user, second_user, durak_deck_36): + """Starting again while a game is in progress must raise GameError.""" + lobby = create_lobby(test_user, "G3", is_private=False) + join_lobby(lobby, second_user) + set_ready(lobby, test_user, True) + set_ready(lobby, second_user, True) + start_game(lobby, test_user) + # Lobby still 'playing' but can_start_game is False — service checks active Game. + with pytest.raises(GameError) as exc: + start_game(lobby, test_user) + assert exc.value.code == "state" diff --git a/game/urls.py b/game/urls.py new file mode 100644 index 0000000..b0cf7f1 --- /dev/null +++ b/game/urls.py @@ -0,0 +1,9 @@ +from django.urls import path + +from game import views + +urlpatterns = [ + path("", views.lobby_list_page, name="game-lobby-list-page"), + path("lobbies//", views.lobby_detail_page, name="game-lobby-detail-page"), + path("play//", views.game_play_page, name="game-play-page"), +] diff --git a/game/views.py b/game/views.py index 91ea44a..90777a4 100644 --- a/game/views.py +++ b/game/views.py @@ -1,3 +1,38 @@ +"""Thin template views: pages load all state via ``/api/game/`` from JavaScript.""" + +from django.contrib.auth.decorators import login_required from django.shortcuts import render -# Create your views here. + +@login_required +def lobby_list_page(request): + """Render the public lobby browser shell (data via fetch).""" + return render(request, "game/lobby_list.html") + + +@login_required +def lobby_detail_page(request, lobby_id): + """Render a single lobby + chat shell; ``lobby_id`` is only in the URL path. + + Args: + request: Django request (must be authenticated). + lobby_id: UUID from the route; the template reads the same id client-side. + + Returns: + HttpResponse: ``lobby_detail.html`` without server-side lobby context. + """ + return render(request, "game/lobby_detail.html") + + +@login_required +def game_play_page(request, game_id): + """Render the table UI shell for a running ``Game`` id. + + Args: + request: Authenticated request. + game_id: UUID string from the URL. + + Returns: + HttpResponse: ``play.html`` with no game payload embedded server-side. + """ + return render(request, "game/play.html") From 51411b1317fcfa073ca008ad56f371d2e6ec2bdc Mon Sep 17 00:00:00 2001 From: Kiryl Alishkevich Date: Sat, 2 May 2026 15:06:29 +0200 Subject: [PATCH 2/5] Fix bugs, very basic game flow --- Fools_Arena/routing.py | 6 +- Fools_Arena/test_settings.py | 13 ++ Fools_Arena/urls.py | 3 +- accounts/templates/base.html | 5 +- chat/consumers.py | 5 + chat/services.py | 52 ++++++ conftest.py | 2 +- game/api_views.py | 33 +++- game/card_catalog.py | 203 +++++++++++++++++++++ game/management/commands/init_game_data.py | 180 ++++-------------- game/services.py | 96 +++++++++- game/templates/game/lobby_detail.html | 200 ++++++++++++++++---- game/templates/game/lobby_list.html | 83 ++++++--- game/templates/game/play.html | 76 +++++--- game/tests/test_card_catalog.py | 31 ++++ game/tests/test_game_services.py | 35 +++- pytest.ini | 2 +- 17 files changed, 767 insertions(+), 258 deletions(-) create mode 100644 Fools_Arena/test_settings.py create mode 100644 game/card_catalog.py create mode 100644 game/tests/test_card_catalog.py diff --git a/Fools_Arena/routing.py b/Fools_Arena/routing.py index 70c47e5..d47d70a 100644 --- a/Fools_Arena/routing.py +++ b/Fools_Arena/routing.py @@ -1,9 +1,7 @@ from channels.routing import URLRouter -from channels.auth import AuthMiddlewareStack from chat.routing import websocket_urlpatterns as chat_routes from game.routing import websocket_urlpatterns as game_routes -websocket_application = AuthMiddlewareStack( - URLRouter(chat_routes + game_routes) -) +# AuthMiddlewareStack is applied once in asgi.py (do not wrap here too). +websocket_application = URLRouter(chat_routes + game_routes) diff --git a/Fools_Arena/test_settings.py b/Fools_Arena/test_settings.py new file mode 100644 index 0000000..4bf6ca2 --- /dev/null +++ b/Fools_Arena/test_settings.py @@ -0,0 +1,13 @@ +"""Django settings for automated tests (no Redis dependency). + +Extends production settings but swaps the Channels layer for an in-memory +backend so ``pytest`` does not require a running Redis instance. +""" + +from Fools_Arena.settings import * # noqa: F401,F403 pylint:disable=wildcard-import,unused-wildcard-import + +CHANNEL_LAYERS = { + "default": { + "BACKEND": "channels.layers.InMemoryChannelLayer", + }, +} diff --git a/Fools_Arena/urls.py b/Fools_Arena/urls.py index f5345e3..d76edbf 100644 --- a/Fools_Arena/urls.py +++ b/Fools_Arena/urls.py @@ -27,10 +27,11 @@ # UI path("accounts/", include("accounts.urls")), path("chat/", include("chat.urls")), + path("game/", include("game.urls")), # API path("api/accounts/", include("accounts.api_urls")), path("api/chat/", include("chat.api_urls")), - + path("api/game/", include("game.api_urls")), ] # Add static files diff --git a/accounts/templates/base.html b/accounts/templates/base.html index d40fa40..24a35cd 100644 --- a/accounts/templates/base.html +++ b/accounts/templates/base.html @@ -2,7 +2,9 @@ + {% block title %}Fools Arena{% endblock %} + {% block extra_head %}{% endblock %}
      @@ -11,6 +13,7 @@

      Fools Arena

      Login | Register | Profile | + Games | Chat
      @@ -22,7 +25,7 @@

      Fools Arena

      -

      © 2025 Fools Arena

      +

      © 2026 Fools Arena

      diff --git a/chat/consumers.py b/chat/consumers.py index e057560..132a363 100644 --- a/chat/consumers.py +++ b/chat/consumers.py @@ -3,6 +3,7 @@ from channels.db import database_sync_to_async from channels.generic.websocket import AsyncWebsocketConsumer from django.contrib.auth import get_user_model +from django.contrib.auth.models import AnonymousUser from .models import Chat, ChatParticipant, Message from .services import assert_can_send_message @@ -16,6 +17,10 @@ async def connect(self): self.user = self.scope["user"] self.chat_id = self.scope["url_route"]["kwargs"]["chat_id"] + if isinstance(self.user, AnonymousUser): + await self.close(code=4401) + return + # Check if user has access to the chat if not await self.user_can_access_chat(): await self.close(code=403) # Forbidden diff --git a/chat/services.py b/chat/services.py index 1826f21..31115e4 100644 --- a/chat/services.py +++ b/chat/services.py @@ -4,8 +4,15 @@ and validation before messages are stored or broadcast. """ +from __future__ import annotations + +from typing import TYPE_CHECKING + from accounts.models import Block +if TYPE_CHECKING: + from game.models import Lobby + def is_direct_message_blocked(sender, recipient): """Return True if ``recipient`` has blocked ``sender`` (sender cannot DM). @@ -22,6 +29,51 @@ def is_direct_message_blocked(sender, recipient): return Block.objects.filter(blocker=recipient, blocked=sender).exists() +def get_lobby_chat(lobby: Lobby): + """Return the lobby-linked :class:`~chat.models.Chat`, syncing active players. + + Creates ``is_lobby=True`` chat on first use and ensures every non-left + :class:`~game.models.LobbyPlayer` is a :class:`~chat.models.ChatParticipant`. + + Args: + lobby: :class:`~game.models.Lobby` instance. + + Returns: + Chat: The canonical lobby chat for this lobby. + """ + from game.models import LobbyPlayer + + from .models import Chat + + chat = ( + Chat.objects.filter(lobby=lobby, is_lobby=True).order_by("created_at").first() + ) + if chat is None: + chat = Chat.objects.create( + lobby=lobby, + is_lobby=True, + is_group=True, + name=(lobby.name or "Lobby chat")[:100], + ) + for lp in LobbyPlayer.objects.filter(lobby=lobby).exclude(status="left"): + chat.add_participant(lp.user) + return chat + + +def remove_user_from_lobby_chat(lobby: Lobby, user): + """Drop ``user`` from the lobby chat when they leave the lobby table. + + Args: + lobby: Lobby the user left. + user: Participant to remove from the linked chat (if any). + """ + from .models import Chat + + chat = Chat.objects.filter(lobby=lobby, is_lobby=True).first() + if chat: + chat.remove_participant(user) + + def assert_can_send_message(chat, sender): """Raise ``PermissionError`` if ``sender`` may not post in ``chat``. diff --git a/conftest.py b/conftest.py index 1a1b3b4..4879fdf 100644 --- a/conftest.py +++ b/conftest.py @@ -22,7 +22,7 @@ def test_basic_game_has_trump(basic_game, basic_cards): import os import pytest -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Fools_Arena.settings") +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Fools_Arena.test_settings") import django diff --git a/game/api_views.py b/game/api_views.py index e9c1d1c..e9af7c2 100644 --- a/game/api_views.py +++ b/game/api_views.py @@ -1,16 +1,19 @@ """REST API for lobbies, gameplay, and lobby chat. -All gameplay and lobby mutations delegate to :mod:`game.services`. Lobby chat -persists :class:`chat.models.Message` rows and mirrors new messages over the -lobby WebSocket group. +Gameplay delegates to :mod:`game.services`. Lobby-scoped lines use the shared +:class:`chat.models.Chat` (``is_lobby=True``, FK to :class:`game.models.Lobby`) +and :class:`chat.models.Message`; HTTP echoes are also pushed on the lobby +WebSocket group for the game UI. """ +from django.db.models import Count, Q from django.shortcuts import get_object_or_404 from rest_framework import permissions, status from rest_framework.response import Response from rest_framework.views import APIView from chat.models import Message +from chat.services import assert_can_send_message, get_lobby_chat from game.models import Game, Lobby, LobbyPlayer from game.realtime import broadcast_lobby from game.serializers import ( @@ -61,6 +64,10 @@ class LobbyListCreateAPI(APIView): def get(self, request): qs = ( Lobby.objects.filter(status="waiting", is_private=False) + .annotate( + active_n=Count("players", filter=~Q(players__status="left")), + ) + .filter(active_n__gt=0) .select_related("settings", "owner") .order_by("-created_at") ) @@ -133,10 +140,16 @@ class LobbyLeaveAPI(APIView): def post(self, request, lobby_id): lobby = get_object_or_404(Lobby, id=lobby_id) try: - leave_lobby(lobby, request.user) + info = leave_lobby(lobby, request.user) except GameError as e: return _err(e) - return Response({"detail": "left"}) + return Response( + { + "detail": "left", + "lobby_closed": info["lobby_closed"], + "new_owner_id": info.get("new_owner_id"), + } + ) class LobbyReadyAPI(APIView): @@ -278,7 +291,8 @@ def get(self, request, lobby_id): lobby = get_object_or_404(Lobby, id=lobby_id) if not lobby.players.filter(user=request.user).exclude(status="left").exists(): return Response(status=status.HTTP_403_FORBIDDEN) - msgs = list(Message.get_lobby_messages(lobby, limit=100)) + chat = get_lobby_chat(lobby) + msgs = list(Message.objects.filter(chat=chat).order_by("-sent_at")[:100]) msgs.reverse() return Response( [ @@ -299,9 +313,14 @@ def post(self, request, lobby_id): return Response(status=status.HTTP_403_FORBIDDEN) ser = LobbyMessageSerializer(data=request.data) ser.is_valid(raise_exception=True) + chat = get_lobby_chat(lobby) + try: + assert_can_send_message(chat, request.user) + except PermissionError as exc: + return Response({"detail": str(exc)}, status=status.HTTP_403_FORBIDDEN) m = Message.objects.create( sender=request.user, - lobby=lobby, + chat=chat, content=ser.validated_data["content"], ) broadcast_lobby( diff --git a/game/card_catalog.py b/game/card_catalog.py new file mode 100644 index 0000000..cc8ed43 --- /dev/null +++ b/game/card_catalog.py @@ -0,0 +1,203 @@ +"""Canonical playing-card catalog: dedupe rows and ensure a full shoe exists. + +Used by ``init_game_data`` and by :func:`game.services.start_game` when the DB +is missing cards. Merges duplicate ``CardSuit`` (same name), ``CardRank`` (same +value), and normal ``Card`` rows (same suit + rank, ``special_card`` NULL). +""" + +from __future__ import annotations + +from typing import List, Tuple + +from django.db import transaction +from django.db.models import Count + +from game.models import Card, CardRank, CardSuit, DiscardPile, Game, GameDeck, PlayerHand, TableCard + + +def ranks_for_deck_size(size: int) -> List[Tuple[str, int]]: + """Return (name, value) rank rows for a 24 / 36 / 52-card shoe.""" + face = [("Jack", 11), ("Queen", 12), ("King", 13), ("Ace", 14)] + if size == 52: + numeric = [(str(i), i) for i in range(2, 11)] + return numeric + face + if size == 36: + numeric = [(str(i), i) for i in range(6, 11)] + return numeric + face + if size == 24: + numeric = [("9", 9), ("10", 10)] + return numeric + face + raise ValueError(f"Unsupported deck size: {size}") + + +CANONICAL_SUITS: List[Tuple[str, str]] = [ + ("Hearts", "red"), + ("Diamonds", "red"), + ("Clubs", "black"), + ("Spades", "black"), +] + + +def _reassign_card_pk(old_id, new_id) -> None: + """Point all FKs from ``old_id`` to ``new_id``, then delete the old ``Card``. + + Bulk ``UPDATE`` on :class:`~game.models.PlayerHand` or :class:`~game.models.GameDeck` + can violate uniqueness if the same player or deck already references ``new_id`` + (two physical duplicate rows for one suit/rank were both dealt). In that case + drop the redundant row instead of updating it. + """ + if old_id == new_id: + return + Game.objects.filter(trump_card_id=old_id).update(trump_card_id=new_id) + + for gd in GameDeck.objects.filter(card_id=old_id).order_by("id"): + if GameDeck.objects.filter(game_id=gd.game_id, card_id=new_id).exclude(pk=gd.pk).exists(): + gd.delete() + else: + GameDeck.objects.filter(pk=gd.pk).update(card_id=new_id) + + for ph in PlayerHand.objects.filter(card_id=old_id).order_by("id"): + if PlayerHand.objects.filter(game_id=ph.game_id, player_id=ph.player_id, card_id=new_id).exclude( + pk=ph.pk + ).exists(): + ph.delete() + else: + PlayerHand.objects.filter(pk=ph.pk).update(card_id=new_id) + + for tc in TableCard.objects.filter(attack_card_id=old_id).order_by("id"): + if TableCard.objects.filter(game_id=tc.game_id, attack_card_id=new_id).exclude(pk=tc.pk).exists(): + tc.delete() + else: + TableCard.objects.filter(pk=tc.pk).update(attack_card_id=new_id) + + for tc in TableCard.objects.filter(defense_card_id=old_id).order_by("id"): + if TableCard.objects.filter(game_id=tc.game_id, defense_card_id=new_id).exclude(pk=tc.pk).exists(): + tc.delete() + else: + TableCard.objects.filter(pk=tc.pk).update(defense_card_id=new_id) + + for dp in DiscardPile.objects.filter(card_id=old_id).order_by("id"): + if DiscardPile.objects.filter(game_id=dp.game_id, card_id=new_id).exclude(pk=dp.pk).exists(): + dp.delete() + else: + DiscardPile.objects.filter(pk=dp.pk).update(card_id=new_id) + + Card.objects.filter(pk=old_id).delete() + + +def dedupe_card_suits() -> int: + """Merge duplicate suits with the same ``name``; keep lowest ``id``. Returns removed count.""" + removed = 0 + names = CardSuit.objects.values_list("name", flat=True).distinct() + for name in names: + qs = list(CardSuit.objects.filter(name=name).order_by("id")) + if len(qs) <= 1: + continue + keeper = qs[0] + for dup in qs[1:]: + Card.objects.filter(suit_id=dup.pk).update(suit_id=keeper.pk) + dup.delete() + removed += 1 + return removed + + +def dedupe_card_ranks() -> int: + """Merge duplicate ranks with the same ``value``; keep lowest ``id``. Returns removed count.""" + removed = 0 + values = CardRank.objects.values_list("value", flat=True).distinct() + for value in values: + qs = list(CardRank.objects.filter(value=value).order_by("id")) + if len(qs) <= 1: + continue + keeper = qs[0] + for dup in qs[1:]: + Card.objects.filter(rank_id=dup.pk).update(rank_id=keeper.pk) + dup.delete() + removed += 1 + return removed + + +def dedupe_normal_playing_cards() -> int: + """Merge duplicate normal cards (same suit + rank); keep smallest ``id``. Returns removed count.""" + removed = 0 + keys = ( + Card.objects.filter(special_card__isnull=True) + .values("suit_id", "rank_id") + .annotate(c=Count("id")) + .filter(c__gt=1) + ) + for row in keys: + qs = list( + Card.objects.filter( + suit_id=row["suit_id"], + rank_id=row["rank_id"], + special_card__isnull=True, + ).order_by("id") + ) + keeper_id = qs[0].pk + for dup in qs[1:]: + _reassign_card_pk(dup.pk, keeper_id) + removed += 1 + return removed + + +def _ensure_suits_and_ranks(deck_size: int) -> tuple[list[CardSuit], list[CardRank]]: + suits: list[CardSuit] = [] + for name, color in CANONICAL_SUITS: + suit_obj, _ = CardSuit.objects.get_or_create(name=name, defaults={"color": color}) + if suit_obj.color != color: + suit_obj.color = color + suit_obj.save(update_fields=["color"]) + suits.append(suit_obj) + + rank_rows = ranks_for_deck_size(deck_size) + ranks: list[CardRank] = [] + for name, value in rank_rows: + rank_obj, _ = CardRank.objects.get_or_create(value=value, defaults={"name": name}) + if rank_obj.name != name: + rank_obj.name = name + rank_obj.save(update_fields=["name"]) + ranks.append(rank_obj) + return suits, ranks + + +def _create_missing_cards(suits: list[CardSuit], ranks: list[CardRank]) -> tuple[int, int]: + created = 0 + skipped = 0 + for suit in suits: + for rank in ranks: + exists = Card.objects.filter(suit=suit, rank=rank, special_card__isnull=True).exists() + if exists: + skipped += 1 + continue + Card.objects.create(suit=suit, rank=rank) + created += 1 + return created, skipped + + +@transaction.atomic +def ensure_playing_cards_for_deck_size(deck_size: int) -> dict: + """Dedupe catalog rows, then create any missing standard cards for ``deck_size``. + + Args: + deck_size: One of ``24``, ``36``, ``52``. + + Returns: + Stats dict with keys ``suits_removed``, ``ranks_removed``, ``cards_merged``, + ``cards_created``, ``cards_skipped``. + """ + if deck_size not in (24, 36, 52): + raise ValueError(f"Unsupported deck_size: {deck_size}") + + sr = dedupe_card_suits() + rr = dedupe_card_ranks() + suits, ranks = _ensure_suits_and_ranks(deck_size) + cc, sk = _create_missing_cards(suits, ranks) + cm = dedupe_normal_playing_cards() + return { + "suits_removed": sr, + "ranks_removed": rr, + "cards_merged": cm, + "cards_created": cc, + "cards_skipped": sk, + } diff --git a/game/management/commands/init_game_data.py b/game/management/commands/init_game_data.py index d113a4b..0599b11 100644 --- a/game/management/commands/init_game_data.py +++ b/game/management/commands/init_game_data.py @@ -1,190 +1,76 @@ """ Initialize default card suits, ranks and create Card entries. -This management command will create standard card suits and ranks and then -create Card objects for each suit × rank combination for a chosen deck size. +This management command delegates to :mod:`game.card_catalog`, which merges +duplicate suits (same name), ranks (same value), and normal cards (same suit +and rank), then ensures every suit × rank pair exists for the chosen deck size. Usage: python manage.py init_game_data python manage.py init_game_data --deck-size 36 python manage.py init_game_data --reset -The command is idempotent by default (it uses get_or_create and updates mismatched -names/colors). Using --reset will delete existing Card, CardRank and CardSuit -records before recreating them. - -Module contents: - Command -- Django management command class implementing the behavior. +Using --reset deletes all Card, CardRank and CardSuit rows before rebuilding. """ -from typing import List, Tuple - from django.core.management.base import BaseCommand from django.db import transaction -from game.models import CardSuit, CardRank, Card +from game.card_catalog import ensure_playing_cards_for_deck_size +from game.models import Card, CardRank, CardSuit class Command(BaseCommand): - """ - Django management command to initialize card suits, ranks and cards. - - The command supports 24-, 36- and 52-card decks and an optional reset flag - which deletes existing Card, CardRank and CardSuit records before creating - new ones. + """Build or repair the standard playing-card catalog (24 / 36 / 52 cards).""" - Attributes: - help (str): Short description displayed by `manage.py help`. - """ - - # Standard four suits with their display colors. - suits = [ - ("Hearts", "red"), - ("Diamonds", "red"), - ("Clubs", "black"), - ("Spades", "black"), - ] - - help = "Initialize default card suits, ranks and create Card entries. Default deck: 36 (Durak)." + help = ( + "Initialize card suits, ranks, and cards; merge duplicates; " + "default deck size is 52 (use 36 for classic Durak)." + ) def add_arguments(self, parser): - """ - Add command-line arguments for the management command. - - Args: - parser (argparse.ArgumentParser): The argument parser instance. - - Recognized flags: - --deck-size {24,36,52}: Which deck to create (default 52). - --reset: If present, deletes existing Card/Rank/Suit rows before creating. - """ parser.add_argument( "--deck-size", type=int, choices=[24, 36, 52], default=52, - help="Which deck to create cards for: 24 (9-A), 36 (6-A), 52 (2-A). Default: 52.", + help="Deck to materialize: 24 (9-A), 36 (6-A), 52 (2-A). Default: 52.", ) parser.add_argument( "--reset", action="store_true", - help="Delete existing Card, CardRank and CardSuit records and recreate from scratch.", + help="Delete all Card, CardRank and CardSuit rows before rebuilding.", ) - def ranks_for_deck(self, size: int) -> List[Tuple[str, int]]: - """ - Return a list of (name, value) tuples representing card ranks for the given deck size. - - The returned list orders ranks from lowest to highest numeric value. - - Args: - size (int): Deck size. Supported values: 24, 36, 52. - - Returns: - List[Tuple[str, int]]: List of (display_name, numeric_value) for ranks. - - Raises: - ValueError: If an unsupported deck size is supplied. - """ - face = [("Jack", 11), ("Queen", 12), ("King", 13), ("Ace", 14)] - if size == 52: - # 2..10 plus face cards - numeric = [(str(i), i) for i in range(2, 11)] - return numeric + face - if size == 36: - # 6..10 plus face cards (typical Durak deck) - numeric = [(str(i), i) for i in range(6, 11)] - return numeric + face - if size == 24: - # 9..10 plus face cards (short deck) - numeric = [("9", 9), ("10", 10)] - return numeric + face - raise ValueError("Unsupported deck size") - - def create_suits(self): - # Create or update suits - created_suits = [] - for name, color in self.suits: - suit_obj, created = CardSuit.objects.get_or_create(name=name, defaults={"color": color}) - # If suit exists but has a different color, update it to our canonical color. - if not created and getattr(suit_obj, "color", None) != color: - suit_obj.color = color - suit_obj.save(update_fields=["color"]) - created_suits.append(suit_obj) - self.stdout.write(f"{'Created' if created else 'Found'} suit: {suit_obj.name} ({suit_obj.color})") - return created_suits - - def create_ranks(self, ranks: List[Tuple[str, int]]) -> List[Tuple[str, int]]: - # Create or update ranks - created_ranks = [] - for name, value in ranks: - rank_obj, created = CardRank.objects.get_or_create(value=value, defaults={"name": name}) - # Normalize the printable name if it differs from our desired name. - if not created and getattr(rank_obj, "name", None) != name: - rank_obj.name = name - rank_obj.save(update_fields=["name"]) - created_ranks.append(rank_obj) - self.stdout.write(f"{'Created' if created else 'Found'} rank: {rank_obj.name} (value={rank_obj.value})") - return created_ranks - - def create_cards(self, ranks: List[Tuple[str, int]]): - # Create cards for every suit × rank (skip cards that already exist) - created_cards = 0 - skipped_cards = 0 - created_suits = self.create_suits() - created_ranks = self.create_ranks(ranks) - for suit in created_suits: - for rank in created_ranks: - # If a Card with the suit & rank already exists (and is not a special card), - # skip creating a duplicate. - card_qs = Card.objects.filter(suit=suit, rank=rank, special_card__isnull=True) - if card_qs.exists(): - skipped_cards += 1 - continue - Card.objects.create(suit=suit, rank=rank) - created_cards += 1 - - return created_cards, skipped_cards - def handle(self, *args, **options): - """ - Main entry point for the management command. - - This method creates suits and ranks (using get_or_create so it is safe to - run repeatedly), then creates Card objects for each combination of suit - and rank. If --reset is passed, existing Card, CardRank and CardSuit - records will be deleted first. - - Args: - *args: Positional arguments (unused). - **options: Command options dictionary with keys: - deck_size (int): Deck size to create (24, 36, 52). - reset (bool): Whether to delete existing entries first. - - Raises: - ValueError: If an unsupported deck size is provided (shouldn't happen - because argparse restricts choices). - """ deck_size = options["deck_size"] do_reset = options["reset"] - ranks = self.ranks_for_deck(deck_size) - with transaction.atomic(): if do_reset: - self.stdout.write("Reset requested — deleting existing Cards, CardRank and CardSuit entries...") - # Delete Cards first because of foreign key references to ranks & suits + self.stdout.write( + "Reset requested — deleting existing Cards, CardRank and CardSuit entries..." + ) Card.objects.all().delete() CardRank.objects.all().delete() CardSuit.objects.all().delete() self.stdout.write("Existing card data deleted.") - created_cards, skipped_cards = self.create_cards(ranks) + stats = ensure_playing_cards_for_deck_size(deck_size) - # Summary output - self.stdout.write(self.style.SUCCESS( - f"Deck initialization finished for deck_size={deck_size}." - )) - self.stdout.write(f"Cards created: {created_cards}. Cards already present: {skipped_cards}.") - self.stdout.write( - f"Total suits: {CardSuit.objects.count()}; ranks: {CardRank.objects.count()}; cards: {Card.objects.count()}") + self.stdout.write( + f"Dedupe: removed {stats['suits_removed']} duplicate suit(s), " + f"{stats['ranks_removed']} duplicate rank(s), " + f"merged {stats['cards_merged']} duplicate card row(s)." + ) + self.stdout.write( + f"Cards created: {stats['cards_created']}; already present: {stats['cards_skipped']}." + ) + self.stdout.write( + self.style.SUCCESS( + f"Deck ready for deck_size={deck_size}. " + f"Total suits: {CardSuit.objects.count()}; " + f"ranks: {CardRank.objects.count()}; " + f"cards: {Card.objects.count()}." + ) + ) diff --git a/game/services.py b/game/services.py index 36f1595..4a7ecb6 100644 --- a/game/services.py +++ b/game/services.py @@ -38,6 +38,8 @@ TableCard, Turn, ) +from chat.services import get_lobby_chat, remove_user_from_lobby_chat +from game.card_catalog import ensure_playing_cards_for_deck_size from game.realtime import broadcast_game, broadcast_lobby User = get_user_model() @@ -115,9 +117,32 @@ def _neighbor_user_ids(game: Game, defender_id: UUID) -> set[UUID]: } -def _deck_cards_query(settings: LobbySettings): +_SHOE_CARD_COUNT = {24: 24, 36: 36, 52: 52} + + +def _deck_card_ids_for_shoe(settings: LobbySettings) -> list[UUID]: + """Return exactly one card PK per (suit, rank) for the configured shoe. + + Duplicate ``Card`` rows for the same suit and rank are possible in the + database because ``unique_together`` treats multiple ``NULL`` + ``special_card`` values as distinct. A physical deck must contain each + suit/rank combination at most once; the row with the smallest id wins + (stable ordering). Done in Python because ``MIN(uuid)`` is not valid SQL + on PostgreSQL. + """ values = rank_values_for_deck(settings.card_count) - return Card.objects.filter(special_card__isnull=True, rank__value__in=values) + qs = Card.objects.filter(special_card__isnull=True, rank__value__in=values).order_by( + "suit_id", "rank_id", "id" + ) + seen: set[tuple[int, int]] = set() + out: list[UUID] = [] + for card in qs: + key = (card.suit_id, card.rank_id) + if key in seen: + continue + seen.add(key) + out.append(card.id) + return out def _pick_first_attacker(game: Game, trump_suit_id) -> UUID: @@ -258,6 +283,22 @@ def _all_defended(game: Game) -> bool: return qs.exists() and not qs.filter(defense_card__isnull=True).exists() +def leave_other_active_lobbies(user: User, *, except_lobby: Lobby | None = None): + """Leave every active lobby membership except ``except_lobby`` (if given). + + Ensures a user is only seated in one waiting/playing lobby at a time. + + Args: + user: Player to detach from extra rooms. + except_lobby: Lobby id to skip (e.g. the room being joined). + """ + qs = LobbyPlayer.objects.filter(user=user).exclude(status="left") + if except_lobby is not None: + qs = qs.exclude(lobby_id=except_lobby.id) + for lp in list(qs): + leave_lobby(lp.lobby, user) + + @transaction.atomic def create_lobby( owner: User, @@ -289,6 +330,7 @@ def create_lobby( Returns: The newly created :class:`~game.models.Lobby` instance. """ + leave_other_active_lobbies(owner, except_lobby=None) lobby = Lobby.objects.create( owner=owner, name=name, @@ -306,6 +348,7 @@ def create_lobby( turn_time_limit=turn_time_limit, ) LobbyPlayer.objects.create(lobby=lobby, user=owner, status="waiting") + get_lobby_chat(lobby) broadcast_lobby(lobby.id, "lobby_created", {"lobby_id": str(lobby.id)}) return lobby @@ -327,6 +370,7 @@ def join_lobby(lobby: Lobby, user: User, password: str | None = None) -> LobbyPl """ if lobby.status == "closed": raise GameError("Lobby is closed", "closed") + leave_other_active_lobbies(user, except_lobby=lobby) if lobby.is_full(): raise GameError("Lobby is full", "full") if lobby.is_private: @@ -340,27 +384,52 @@ def join_lobby(lobby: Lobby, user: User, password: str | None = None) -> LobbyPl lp.save(update_fields=["status"]) else: lp = LobbyPlayer.objects.create(lobby=lobby, user=user, status="waiting") + get_lobby_chat(lobby) broadcast_lobby(lobby.id, "player_joined", {"user_id": str(user.id)}) return lp @transaction.atomic -def leave_lobby(lobby: Lobby, user: User): +def leave_lobby(lobby: Lobby, user: User) -> dict: """Mark every active membership of ``user`` in ``lobby`` as left. + If nobody remains, the lobby is closed. If the owner leaves but others stay, + ownership moves to another member (alphabetically by username). + Args: lobby: Lobby to exit. user: Leaving user. + Returns: + Dict with ``lobby_closed`` (bool) and ``new_owner_id`` (optional str). + Raises: GameError: If the user had no active membership. """ qs = LobbyPlayer.objects.filter(lobby=lobby, user=user).exclude(status="left") if not qs.exists(): raise GameError("Not in lobby", "not_found") + was_owner = lobby.owner_id == user.id for lp in qs: lp.leave_lobby() + remove_user_from_lobby_chat(lobby, user) + + lobby_closed = False + new_owner_id: str | None = None + remaining = LobbyPlayer.objects.filter(lobby=lobby).exclude(status="left") + if not remaining.exists(): + if lobby.status != "closed": + lobby.status = "closed" + lobby.save(update_fields=["status"]) + lobby_closed = True + elif was_owner: + next_lp = remaining.order_by("user__username").first() + lobby.owner = next_lp.user + lobby.save(update_fields=["owner"]) + new_owner_id = str(next_lp.user_id) + broadcast_lobby(lobby.id, "player_left", {"user_id": str(user.id)}) + return {"lobby_closed": lobby_closed, "new_owner_id": new_owner_id} @transaction.atomic @@ -419,10 +488,24 @@ def start_game(lobby: Lobby, user: User) -> Game: else: lp.leave_lobby() - deck_q = _deck_cards_query(settings) - card_ids = list(deck_q.values_list("id", flat=True)) + if settings.card_count not in _SHOE_CARD_COUNT: + raise GameError("Unsupported card_count for this lobby", "config") + ensure_playing_cards_for_deck_size(settings.card_count) + card_ids = _deck_card_ids_for_shoe(settings) + expected = _SHOE_CARD_COUNT.get(settings.card_count) + if expected is not None and len(card_ids) != expected: + raise GameError( + f"Deck data mismatch after auto-seed: {len(card_ids)} unique suit/rank cards, " + f"need {expected} for a {settings.card_count}-card shoe", + "config", + ) if len(card_ids) < 12: raise GameError("Not enough cards in database for this deck size", "config") + if len(card_ids) != len(set(card_ids)): + raise GameError( + "Deck build produced duplicate card ids; run: python manage.py init_game_data", + "config", + ) secrets.SystemRandom().shuffle(card_ids) trump_id = card_ids[-1] rest = card_ids[:-1] @@ -511,6 +594,9 @@ def serialize_lobby(lobby: Lobby) -> dict: for p in lobby.players.exclude(status="left").select_related("user") ], "active_game_id": _active_game_id(lobby), + "can_start": lobby.can_start_game(), + "ready_count": lobby.players.filter(status="ready").count(), + "active_player_count": lobby.players.exclude(status="left").count(), } diff --git a/game/templates/game/lobby_detail.html b/game/templates/game/lobby_detail.html index 06ee88e..87fc999 100644 --- a/game/templates/game/lobby_detail.html +++ b/game/templates/game/lobby_detail.html @@ -1,33 +1,110 @@ {% extends "base.html" %} +{% load static %} {% block title %}Lobby — Fools Arena{% endblock %} +{% block extra_head %} + +{% endblock %} {% block content %} -
      -

      ← All lobbies

      -

      Lobby

      -
      
      -  
        -

        - - - -

        -
        -
        -

        Lobby chat

        -
        -
        - - -
        -
        +
        + ← All lobbies + +
        +
        +

        Lobby

        +
        
        +    
          +
          +
          + + + + +
          +

          +
          + +
          +

          Lobby chat

          +
          +
          + + +
          +
          +
          + {% endblock %} diff --git a/game/tests/test_game_services.py b/game/tests/test_game_services.py index 46c51bf..cfba2ef 100644 --- a/game/tests/test_game_services.py +++ b/game/tests/test_game_services.py @@ -3,8 +3,29 @@ import pytest from django.contrib.auth import get_user_model -from game.models import Card, CardRank, CardSuit, GameDeck, Lobby, LobbyPlayer, PlayerHand -from game.services import GameError, create_lobby, join_lobby, set_ready, start_game +from game.models import ( + Card, + CardRank, + CardSuit, + Game, + GameDeck, + GamePlayer, + Lobby, + LobbyPlayer, + LobbySettings, + PlayerHand, + TableCard, +) +from game.services import ( + GameError, + PHASE_BUILD, + _table_attack_ranks, + create_lobby, + join_lobby, + play_attack, + set_ready, + start_game, +) User = get_user_model() @@ -105,3 +126,116 @@ def test_active_game_blocks_second_start(test_user, second_user, durak_deck_36): with pytest.raises(GameError) as exc: start_game(lobby, test_user) assert exc.value.code == "state" + + +@pytest.mark.django_db +def test_attack_stays_in_build_for_parallel_defense(test_user, second_user, durak_deck_36): + """Wave stays in ``build`` so the defender can beat while others still throw in.""" + lobby = create_lobby(test_user, "parallel-wave", is_private=False) + join_lobby(lobby, second_user) + set_ready(lobby, test_user, True) + set_ready(lobby, second_user, True) + game = start_game(lobby, test_user) + rs = game.runtime_state or {} + assert rs.get("phase") == "between" + attacker = test_user if str(test_user.id) == rs.get("attacker_id") else second_user + hands = PlayerHand.objects.filter(game=game, player=attacker).select_related("card__rank") + by_rank_value = {} + for ph in hands: + by_rank_value.setdefault(ph.card.rank.value, []).append(ph.card.id) + chosen = max(by_rank_value, key=lambda v: len(by_rank_value[v])) + card_ids = by_rank_value[chosen] + play_attack(game, attacker, card_ids) + game.refresh_from_db() + assert (game.runtime_state or {}).get("phase") == PHASE_BUILD + + +@pytest.mark.django_db +def test_table_attack_ranks_includes_defensive_card(durak_deck_36, test_user): + """Podkidnoy: ranks on covered cards (defense) count for matching throw-ins.""" + lobby = Lobby.objects.create(owner=test_user, name="throw-ranks", status="playing") + LobbySettings.objects.create(lobby=lobby, max_players=4, card_count=36) + trump = Card.objects.filter(special_card__isnull=True).first() + game = Game.objects.create(lobby=lobby, trump_card=trump, status="in_progress", runtime_state={}) + eight = Card.objects.filter(rank__value=8, special_card__isnull=True).first() + q_cover = Card.objects.filter(rank__value=12, special_card__isnull=True).first() + TableCard.objects.create(game=game, attack_card=eight, defense_card=q_cover) + allowed = _table_attack_ranks(game) + assert 8 in allowed + assert 12 in allowed + + +@pytest.mark.django_db +def test_third_player_may_throw_rank_seen_only_on_defense(durak_deck_36, user_factory): + """Third player can throw a queen when the only queen on table is the defender's card.""" + a = user_factory(username="pod_a") + b = user_factory(username="pod_b") + c = user_factory(username="pod_c") + lobby = Lobby.objects.create(owner=a, name="podkidnut", status="playing") + LobbySettings.objects.create(lobby=lobby, max_players=4, card_count=36) + trump = Card.objects.filter(special_card__isnull=True).first() + game = Game.objects.create( + lobby=lobby, + trump_card=trump, + status="in_progress", + runtime_state={ + "phase": PHASE_BUILD, + "attacker_id": str(a.id), + "defender_id": str(b.id), + }, + ) + for seat, u in enumerate((a, b, c), start=1): + GamePlayer.objects.create(game=game, user=u, seat_position=seat, cards_remaining=0) + eight = Card.objects.filter(rank__value=8, special_card__isnull=True).first() + queens = list(Card.objects.filter(rank__value=12, special_card__isnull=True)[:2]) + q_cover, q_hand = queens[0], queens[1] + blocked = {eight.id, q_cover.id, q_hand.id} + filler = list(Card.objects.filter(special_card__isnull=True).exclude(id__in=blocked)[:6]) + for i, card in enumerate(filler): + PlayerHand.objects.create(game=game, player=b, card=card, order_in_hand=i + 1) + GamePlayer.objects.filter(game=game, user=b).update(cards_remaining=len(filler)) + TableCard.objects.create(game=game, attack_card=eight, defense_card=q_cover) + PlayerHand.objects.create(game=game, player=c, card=q_hand, order_in_hand=1) + GamePlayer.objects.filter(game=game, user=c).update(cards_remaining=1) + + play_attack(game, c, [q_hand.id]) + assert TableCard.objects.filter(game=game).count() == 2 + + +@pytest.mark.django_db +def test_throw_eight_when_two_tens_beaten_by_eight_and_queen(durak_deck_36, user_factory): + """Ranks from all defense cards count with multiple table rows (two attacks).""" + a = user_factory(username="mix_a") + b = user_factory(username="mix_b") + c = user_factory(username="mix_c") + lobby = Lobby.objects.create(owner=a, name="mix-throw", status="playing") + LobbySettings.objects.create(lobby=lobby, max_players=4, card_count=36) + trump = Card.objects.filter(special_card__isnull=True).first() + game = Game.objects.create( + lobby=lobby, + trump_card=trump, + status="in_progress", + runtime_state={ + "phase": PHASE_BUILD, + "attacker_id": str(a.id), + "defender_id": str(b.id), + }, + ) + for seat, u in enumerate((a, b, c), start=1): + GamePlayer.objects.create(game=game, user=u, seat_position=seat, cards_remaining=0) + tens = list(Card.objects.filter(rank__value=10, special_card__isnull=True)[:2]) + eights = list(Card.objects.filter(rank__value=8, special_card__isnull=True)[:2]) + queens = list(Card.objects.filter(rank__value=12, special_card__isnull=True)[:1]) + blocked = {tens[0].id, tens[1].id, eights[0].id, eights[1].id, queens[0].id} + filler = list(Card.objects.filter(special_card__isnull=True).exclude(id__in=blocked)[:6]) + for i, card in enumerate(filler): + PlayerHand.objects.create(game=game, player=b, card=card, order_in_hand=i + 1) + GamePlayer.objects.filter(game=game, user=b).update(cards_remaining=len(filler)) + TableCard.objects.create(game=game, attack_card=tens[0], defense_card=eights[0]) + TableCard.objects.create(game=game, attack_card=tens[1], defense_card=queens[0]) + PlayerHand.objects.create(game=game, player=c, card=eights[1], order_in_hand=1) + GamePlayer.objects.filter(game=game, user=c).update(cards_remaining=1) + + assert 8 in _table_attack_ranks(game) + play_attack(game, c, [eights[1].id]) + assert TableCard.objects.filter(game=game).count() == 3 From 579e756d1d15648f6b78a4f312fb7dc9e75abc44 Mon Sep 17 00:00:00 2001 From: Kiryl Alishkevich Date: Tue, 5 May 2026 19:35:40 +0200 Subject: [PATCH 4/5] DB Scheme --- Dockerfile | 4 ++++ Fools_Arena/settings.py | 1 + docker-compose.yml | 2 ++ requirements.txt | Bin 1506 -> 764 bytes schema.png | Bin 0 -> 441159 bytes 5 files changed, 7 insertions(+) create mode 100644 schema.png diff --git a/Dockerfile b/Dockerfile index c822b15..2923f82 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,10 @@ FROM python:3.11-slim WORKDIR /app +RUN apt-get update \ + && apt-get install -y --no-install-recommends graphviz \ + && rm -rf /var/lib/apt/lists/* + COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt diff --git a/Fools_Arena/settings.py b/Fools_Arena/settings.py index 854a01d..d0c61ae 100644 --- a/Fools_Arena/settings.py +++ b/Fools_Arena/settings.py @@ -40,6 +40,7 @@ "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", + "django_extensions", 'rest_framework', 'accounts', 'chat', diff --git a/docker-compose.yml b/docker-compose.yml index ed52fd0..43329aa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,8 @@ services: db: image: postgres:17 restart: always + ports: + - "5433:5432" environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} diff --git a/requirements.txt b/requirements.txt index 9325eedb4f7ac790307e2eaba295ce46eafbd55c..243ea4410adcbf2a1c515abdb7922cca749186d9 100644 GIT binary patch literal 764 zcmZ8f%Z}7A5WM?eV#S%qE(afwI3j_x+(%x=NeoHb*v{;FevJd4#4k|o8FAp2>TY*c zSLM&I-zLvKxk>AT{2&KmN=aGk;Utf;7iKTv)hyHssz?7LDw`>f33V2Bnmmx~F>V(_ zJFp%384$J5Uui)mXxuOk7Ys zp22kxBM>=e8o>1FyP-K~eF8d*v7yer7f0D+Baf*^Ik{XWP`bB}AOjp{^xF2Tzp;)1 za3^m=;=`d5Iv1t5g;{*p=+f#5uLsq-ek5FgRZ4iW$!(5`SH+Nv4ar+7RcVd-Y@z`+}qt>eXaws`!9Ax@=+GSBHby zPHe6=nv`AQSHl5#3p)Kvrr7fLJmLHFVWG<%jc$p*(-}!VQ&?=(fcMvkBScVLwP&v7db0s zWQ@-iSr3kOiL50-c2pEV4bsrb0w6{ zD*NTNJ|v_Z8x$RMzBJgv1|}e6o`aYi)HR$YWuFq~;1k&>R|(~0qwCW;;;2p{`$lNd zFTXfUc5QCx)EHg(Y0AMYl54Te+>+*ZEyt_2-u z_sE*n-zj(HRr!Wn*%x{lRd4Tl_DRn|Im`2%)j|#>qkh!x^c95~>D=f)dft1T!n=Pj zl$by=@eAFVkTzw-1cYx7>be!1^6V=tcmpFxN}u)qjDeDYFsk}d-`nI6XXjo=;h&tt zsEop{H1Y5%)j{?@wuZUK{ZZf9t$v~2to$;%kphEMI*I}AEoUyXr#3yXhbT@C6HsUi zsPRLo2##H@ebnb7}WzoqA_SynZ=1@*gj zgBt=)^+JnzCMJ85=AC$l-b7|SsXQvmG;M_Ol)5|k3GN6^g(gePXI0}?jh!geXWXjc k^-=1?wC9aPhqZ+w@O~B__U_ti!+x*5VDjVcz_D4o|FhBBG5`Po diff --git a/schema.png b/schema.png new file mode 100644 index 0000000000000000000000000000000000000000..61f5eeb866296f6d585c79ad8ab432923f9ab3aa GIT binary patch literal 441159 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 z zlAE1r;IYsu#|QRI&76>X$wa)q1j!S5)+;P%-{gTz8^mm{I%GkvG>+{Lfx#` z`D0f#5hJQ!Zac;Y(cJK98u^X>;xuVIvC{g_*SQQQ1~Z=^QzabchVz0k zt(Yvrh@LUIKbBhNBt!6EZC2Erh(faQ)mOM}6uUV@4Hhxd^ZQXMmp7-lyNnLWy zyPj^J&3r<_C+Q_Akatxv7Up23A9$(z5$r;$EyOM$pmR7V{s8;7w2#Ke#_gph6<0MH zM*AH{n`1<_oiOo@==5NY{e0OGEgNn&|E|od&`+wKOWKH_YY7};b%1v4FElG?Edwt* z8go4aH-br}-sNPRu{e96V6}4UOBr9HE`0|K^dxT4aTIWG-@jM0wrQnY5k$|I1H3P* zOZok!y#ks?Mn&a9+0q{vFJ6p>FJoR7=fWpb`5N4<7yY>X$(z8vCz&(>`$~XSc&ee>3cUUR z;jbf=5k@@_RNgo~19&QseRuKW=mV&0F0%BO`no0_BaU$Y2j z8l`+~N=Ny-KvyRA9N}-6E+!OATgTOisfxV zdoGaWL zvwz!`AgQP2_iu{laZF)wP`$@;W$p~ywisaJU?Yr+Hg|l&&ym>_#DA#O&1eBmAZ-1B zc875TbQdP;-nUQu!jLY?zc88FAQ}O{skds?BEbEUgHIK?Ox`kg5)o7+KY#rHA`Tn9 zGRat$C5i!Sz<&h>=Iq1GjA9gmc`%C=9PKdCqhZ!}pV~)e+?ZDCq(0l5AIeyR7bGC} z2)o&Ldo%ejqRFf%3RiNQh7bUHV>#6ktYHpfA6ZlhR?_gSEkWQAX&xl-6qJ;xT7U7a z%0ag&Y8B3Dq*2i9(1^?bt5|3u0;lLIJ5J#z@_G;h$;L^5s?(a&i#kd_&jaRS$@+Ji zxm0j6*={&3K!yIfIiHbIMM58ANSykZ$HPW=q$H}TsOUC}HrOWaIXp}acIK4^_LAXN zE&^zq9#kU_dhwVZZDe4IU9*&99zQ>*@&aQtXLS0L3(TXgpguJ_H*X}5TV}XtV~YJCq8BYq?c; z1H1i2yA4(fd(>=zQJ|2wSZOS_wbi3BNq)&*mV$_Ni;pUcfmV1?*7=hO51jAt}-8;#k6AI>LlQk&5Pk3!8s>6#{E9jxXe z;%8=mym$95i%kCRbz`TJ?q1GN0^6&fcCVjKL$u;?$gQ-r23KteFa{8CNEQ6o+WO_W zwd3mdPK^i$kY#kz5uh`AZk!3=q3oPtVG3JUhj;B0pj5CHn;+qeggKl6q0@f@fQ8I2ko&$xB3(y6JLs9cI2F%9ev9z;ocrHALq6G$Qghgy#_JWu@I!Y~Y4#iQiA z7!$V@1S29jxU{VH74;d^8yj@^-#`lO^l*f48*f)e+1|E6Z;* zZQfkmZ~{~e&d{}xDIAjS-+Yk*4J9tSy>vW6fVb!`Rpzc5(}T_@l?YzLEU0CP-F4b> zvzR$UnMB$f6BAR~%WN{2y|AF*Hii^J4niksB+omfl#;u046279f)Jd-Jsz(N>jDsP z;`FCP-Ox*-R%g7}oFDe1EI&>z3mmuXNJq4%KKqmpXiVTHxH@WBJKA{O!Xe1u(JQk~ z*n67&s8W87{6dQD@4u zJ7x&8klH+5rK=eJloG5O%JM^ATwf##mZAMBjsT=EE0{_irTh!$(ulv(+1ZgYXbC1{ zM&+H{xocNLe&ktpN7ED>>N#8gJUwd~;w3WMXtwgeKh!+)>cU7Gc}*hwe z@a?=Z1!@y)VE9a70j*eA1Sl1q;H{LB{aV>(D}f`2 z!kqgzm7-TNdNHuI{91TR26WD88Y;$Ove{9h3>WCERl-1l;fPM123e?CKdw*FOIl&8 z8=T^#cO_)5V)&tv#l9`BMFY8mHoXH=ky&eM)^Bjil2K7ABBVi);n!v8(V=-j^=8ky z>_XgE|DfzRO;7|u`AM|pZom#RIB5ICD@p~QxskF)y+M^qR${jmp=VC$0Bvi3Pv+%kmXXKuV{1ctU;i;OYlRM z9o4jH)U7iRD%5{-Tjn#@r*?YJT^pH3|0l&$hsUf+9mH3WNjd6qT|Ce0b6fTIR2@CK zBU4;LM@*i4Qz!XPR(x6lCySXyZtm!pJAHO2d6sdHWX_OULm(pl*D4f@4R!TF;7GAT zXUgw(b~eRkx*jzU;k^Wy00wh<*x))H#F;D5=h5BI_86z6(tPEZ9)e_w^ne&b*z)JZ z-dxCuh4rXlauFXs6Mka+=U3=3`oo%j96Djb5iZ#5GqaSL=w#IF6tJ8K#1W@#PFY$; zWhmhf-25&|bQ+KhlIYU4YajhToN{ojV0}my5*c5kVYJ|eU!*V;Qx<|V#cErQ-lHo9 z7rd)giDm*elSs`0Oj$FX*>%xof$>nvL_yvJtR*Ec zqX*R(b+gqQbomq~)Y$dcPVNKQgB6gGCo%fCbm>yBRULF|$2}<{m6MwcdIA1G}uqAD(^g}Nor60KrnvSH9M`vLXC_ToX8XDcv{|Kxn*av_x z7gdB)F!6lLn~b%Kfik^DMs^ptAg=NqPQj`tXR@ugn9zZ1FxN@7dxF$c^TnWpvc+|$ zlD519%9~~YL68-X&siE`xK``R-;Us~Nk_vOIrF%^TRM9P9!klq;WQ9c0kKOe;RaSi zSwHy_^o{V?R168rqDCsm&j=p143^anW6I4euHXlaPU{kKcK+o-j8Katnr|W>n)X~q zYA7vA==Zq78f%u>(BjC*JzofW!5(y08aY9^kdqXDiy>r4&2zXvMzlz+<#LTpb;q+E zNcJ22_Fp`}cWzIvtT2~9#&O~wx zR&m)It9^4_mws!$vi`b}r?o~-naic#cG;^BN%id1w{Ira)${OVrVON#$!1w& z;>3lD%8rwP|3IxE341Y7zxv6UaN5fDq<0y4#vuV^u|#ilk0x2p<|BIH1OFx z0Obw24?~Cyk}2u7{3_!>GAE%<=}XYQlaXOG-H<|&O2473yFqC>YFP$)KR?V`DC+>V zzOk-i@T$$$G?NHLWyD+TAe@~qdCVN5>=;55$l_>aA~K2Oc@2n zalXrtd0W8}sG!4n7SRd%jYMJ~6A>V3;=x31c8XUiMS?@wrm$`WJMs_xyn-bz*&OT=jgmh9rTeSsyOINDXfnx;u31w4-|Ls4p%4>WMv^y09c$ruTY@T9L9h!n zohf-5blM{9BDbs{d%Z6$UG5aARI`XuSXyr4ii&}sfFfMDqOyZZx$)(i4D)>qz2O2E|54mS%%=CzaaTNFaa`);d@wT7TP2%L0 zH(;hkd?5fLPnnt{!{Ixt(o{!{63azC8AZncn0@HIL37WCjD5lmzbORe>h}@*0)N!S zN$+2LcoE=*SbkZQD28_?Z;Lnv7qHB4G3JZ@Yb~9=ywX@UUfZYk0}YqdsIY0WJGFt_ z_H8WqE%KKG0x4dxw?Y$@K}IVc*k8FKENL|50<|JHnYpA$MC3rx*f@j&NsdN=g`DLy zb-7j{jlD={@TP@IeoTI>tNeAXb@{tVeLD@m_0IQ;!nq$W9{ZkXRkqpRH2T?_?*&5@ z#`Jl*`|qfI^||uyQkBZMGS4Y1WXOhjOq6JXi=)i?0A<~G^Vca?7Jf_-!8DXVtV%X? zO1<+ia5pG;ESANGx}tG}QW^e6yBv~hc8ZEd$c@J#!6l3KDCznn2|56Oy$8{PH?Jnc z$)g}vLsQd{ewOd2W*Hq=+G_wH({!#*BE%XXgaF~m`(b2>+ir9kfEA8jzUe%t28vI> zCd~31=>LPS_a8Zu4jL-*zZQy$OzCe$?ugyf8SAUVcp|5PMFpgT2vKwM7)(P4GV=`` zC%bH-7o;RBy(lG~T0~p;a(1&Rsh(=o`vSm8>3e&JtLGylpOgwFu_+P7C_j=_8UD5h$%Yd2G zh5)4O#XL%kPFILacOs7`Vy%vRg(WlcUwDiY8)H&qiW)-$ zl^g%wEL5dp8!R?c>n4O8?(Z_5Fff>2vyBG+|1oc^fS?H3Mu2XKm>C0cNTJl{aMYpq z)azYjGdiJw$<5uIQ^Yk&*miFPim+RI15y>Es324jCN4W?omm;6^4($0KDW@Hfy1o) ztlNDl|K{tZfA{sz+>4jL$5dFBynd1ucl+tFJgdv~D{P|b+-8-R`RA&ix}&*be8!<6 zcU3a?R_|Ka?8J>_Gj_T_w!HkK@SM=2G?xX3h=-$sR zNE`)rEav5am||@Tvyl*6OhT1Sl2nW4=v3?{#wpd%OAZAsF%K<2E(|`GSCZCKb(MWA z@v#FI!h%U+BBN#t7rXkjPb?vfGS*8NIZv%B)A2F>c44+d#? z&-ouoN=T0ea`MrNeAqm4!Z?RX>%8uj|5>Mg{c*25$!=@>GxH~pAN*3Mw@zZcV(p!{ z{Ra+ZjGxpzer--|idI>E@55*B7ricQ&V5bKGPx1&-#6=gt4Di!RJ?h9FvRVIiuE!( zJ0^=B(9fb4j6#hC z-LRMjP4P*Be%?#xJUh;260HEUmk)_?9(D5;?aZ=bzHM8wRA3n{%CP^xWY}m}&27CTPKwyIn_5SVLDR3KvQwiWM|H;|4mkinM)EHJiQO@Rh#1Op z3qQQRF_8qWwdJRU%d?4t5$EvIWQ2$2Lc~SnNd#_Gnw zUiNcNp17a@G|~s^?fm6kEe>-<0ObPV@@8Q(qM(^*X{}xS(!EF!0tBPGC7=nEOYOiE z061gCMe5VV4i5V`K?Z)E-sUaxyi4&hIzcBzdzg3nuZmYn!$m`l7PK{Po>2M1LvBWY zAo>%Kng4F`5*J|cmJlp2l4wn`wPF_9}M?SB5qwgKjl`O97|^(xDSj-#A9Ms0{%>aQLD=6lqV@%Z4yj!fTSP z;-a$U*NZ_g)W>LwV3t!%MrX_*fn)Bj^pWyv*=vl1UHm%5Y6NbHvmszf&C-^gmm_~EMv5)D{RxeY1pKA%}mq#CG(|Drg= zK5T{XqxKO%g5|#ci_8_*%H$(yi+Cl&2OwGuitQlJ2nL|!&|s!!ZJirAqbn_reDTF3 z8A9&`W>=o7C%yv(r1O}a;<1I#US!3_KV3N|F*lSVW{r;ba-*qtzd=AW&$o;3-{(8qJ!eMD9Du;z<)mhA zmNU&KN1Yz05Yjq1Jw~T>`G(q*MG31GPe0pXz;qM0M>T71HM}NQmG_NZ``k6NG(G-q z>fZDxcJX<6s=xZ4P^#}oHv(*z&C`WhJG3V6_t!h^SO+Bo2viyuiE0b3Ur~ydWgh4Q z;qQYP+(x3rnveNlqPjk=v%ur9_&hr&wg)S0JPu1d?yQ-a>yd-(9&^RMg&d#{!>Bzu*}D}_KWqGsXDpU7Tm5w&b0kDOs2 zvJ`<&(8O<{r2ozVfFL=QAzjsn|&s^|9qUbZ1t$; zr8jgwZmC~$*iGrU=bTWb7a-4;vWDRPvk)4*Mv_s``<~+06RO^A@={8a1B0?82Sd!& zdFN+Bb5JiMikHt%TQlpL^D5eBecE+oLTquE?s6c@k^46Q0VyXt#^ioyTKzFAvnIRj zRC1GDJF@WtQ=zv9O|^wph1pZ-P5uix9^Z|4e)It@07cu}dKnB=i{_T3q?W4CLM z|B}DOHuCk=Nnc#4Ki*cnxbeQru!pWOB^SSa5BRj{pMu`q&BKnIh>=(6V&pH&JD7~v zT={e^6FxImJzx%?8g8&VF@QOv(}*IB+`ZG=0&j_uiLTg;$RjNi2#h6a5AXDW1T2w` zE?agN@Lp}f-xo^zhu;Njx(R?LdV69cg@*+qIC05Ew?tG)cOnKg5NqrKA~n;yd(Y;c zJFN8m{{LD4iGmj{j6lqG6Ddrqhekobn5xhKbQ(rMgPPWE@VbC|D8(=%F=FM3v=O6K zasUe>#G7X%Wy6Bu-aPA%v3r$L$1voj-(kM`mpXq=)Tx zCM3_91&Q&cLjp`0tYZkx0#nh+;`f914iKwAWUCiueuIz}9rlNu9T--81s|a5YB~>% z0?58JWlSy$>oj;&>fm_u(CD!mmp6_ce!wQ%F0je)1B=d@47$+rwo)13jx?p5TdU!U zXPk*L3?0v;lq>)KJ#eU=LD&XRA=&Fd*3IAitqu1oKJpR(mmWM&1aot(dyMhYtC%BYdu4&Ir-Wsl?{XOezJotUKes0FK|GS_0CDHhIt<+iaG>9>pu9woqaCWUz7^ zGw(iq+L`n~wa+7I4KAY$M+aI*q{+_BElkMNwuO8M(Q-S0bMt~t6mQ8CUxx3kTab|lvNs{Y<>Q>E8YdNAqHlxIkeOpa76dEZAGFb6!>ajljk*U1>*uHF-F{FK z?bI@O+9LAmzC|)Ppkw zsD}OlT|5Ol%HKOAlsbw}{*|nFd#a%!W?@9E-Qco>YL!fx)EBylU?T)ro2|OFO;Bs_ z7}ChrBBdno)RdMPb7K&R7Lv7}kNT%;$By6b8Qq{EqNdBautbj$P+w*xnYtmVYWFPN zF>5#oFE)Q#BR?@|>;`Kv+_PT)5OWJ+7|vtY=S1+@S}xjB8FcRSu=sxg&a7CSP4pzk zwV?b<{{6$cK?OEbF+B8q$uaUcte6ahlc5X%v?PxYVu(#ZIwFnyeF+*p2^#u!fyZ}k zY|^;#N*q-{*Y63OZdt8bPDbGBAL0 zMpN}=n_d(4Wku;@d6{xNd7gzFEAL&q%z^NGjI&3$+eY^1(d|x}bfZ^dGM7_l#>|<^ zh-WZUp**@#tcgIw@E#!mQdb)9zQxMa)jBUbD%j6p%qV}#%mgpOI+LeO`hJ`2?r zLjxH_!Q2X(@8RK?axf7kNO1a_C`|*!*s7HJd^GfjgW|k58q%oWg+*QDQPY%Yjv8Vb zIFRLv8;6;PlOsc1e#8{;0+esTq-1X3xaI7-h>DlMeHz z85-^)0g9_mL$_lW!x#m<=*ZEd%~6Gg$pS}_%~93ZZJkRE$0!TA=sqo}i~+Gr0M`$M z?6I1kLz!h71;mVI?J*3sQ{@X@Y3l3OeF$6(i0K1ma5&{fa3V#H2Wo5p7tK_k9sdud ze+@0Q(Uoi1$uXk9txUC^N7;gIbUA9Q%|AaxiRM2SOV|t=eQ=iMw3CoWtj@bl z-n5Lm5yS&4VALMU$(VQ%bcHIj2d9ZlQx0#$P7=sraYv?)2h+Mus3RB%5J^3TBslPH z44}YJuqAPjq(dO4Me&3%dKH6B9%ZDaX;DW^c7+WF-t?kACe`&u)Fk{Y70dhgMc2)= zl=X+How^@YUvQj|MUE0$5`CV;_7{knh)cyh78-N|qKumjPnYTttkh}Tz`&Y`<2f_B zc1>(EI(BppYLLy{A4haYh2hQZ%8j-JL8@Pka|xZbIYs>ZNG@?h5pr)Lj8!{iAag^N z^|u9dO))Jp1ObsP;4sPZrKoAB8<+9h(_p@Y&P{%Pa+5q?Mil^X7T9#_RM58tfO+xRseyekLaG0FH`j6&SPX zLb=D(5VH*(z}Yxf(o@j(sau@cU;3(-a^~EY0j~1;2k*2U+oKI3RYamNIl0Jk&?lP^ z5iO#8H_LW4nm&O5v}?cWCD&HWkaCS0#S-efBKc#@536KwDac$S=HpRnP)xKu0mlVm z?KaMS{}eqg>B&C@3!^`FTe`LD8$jm2Xyxk%R|So(t*>HN^(GpbPQmWsI1l`Nw?OEq?Cj45CG1f{O=;s1BqaQ zyZ<3OqQPJZ+hEyi1C9CA%>gM;XOP4wq#qL|PK#3*d_9EF8=S#3maivL=zdr z4Ie5i;V9o%{&PW@TP}wi{h-)^vULggRylrV^1?7(?Dhdkmn>g?kCzxccFiHt4$)`s z0SrF?81$x~;N)f3KU?ucRelL_gP?80r+>mVi$kR-<{uf#*=*2Fy|^^p<(~Ul-aiDD zkQP-H6;-~q=_oa2mIXGIyEWj>{DL;rns)(Kd5MT}j2L0FQ2o6Erv*fhF^`pW*N7-z z+H-1JL>Unft(#{;D-#4o2MW*dh#AyiW?4Dt$TiFd&+$b?Foc|O`{m1H)Mh;1;n%KR zg9KZ=WXU${InW>>8==0j9+-DN2NDB~D3l2JSe# zVvb(NnzS=!5%a(}rO7FKEou$orQ<)qouUWiq$HLGx<2!`t#o@`{;W`C@7b3JSw`v^ z^h50&T)U-<%8KshHZI$%y=26PiG2YsAkOabC>YfqDhMYYr3BM0VOHD9%19v{di2O( z%P9kf;X$%(5|TtiWNJZ7Y!nkok`j_Ul ze6DU5-_>tOP)3(~>+J97KO13tru(ljmm}d9;|^{K4j3?FV8)y)@!s}U8GX)rcvf$y zA9JWh@udZsX%Wq<5_PIdk}}UaJM zyLP3`U09WOIy}7GB@kkL-Wgw<9B!eApvnR?VJcP#0}dHtD3Zw=t4|K{7j@ z6S+Ibtl?o-FfBFkFUG34XK7^W;-z7;*mfh(pbR#^zzptPk{~;5Fu@%%#IY{4iFdj^ zX^k*4>C?-r`@kCq_crv=dc+_$R2>BS?f(X_P7p1np(KhfuW@-nZUnZyNn z)g5W_{*=0Y-I$59|@dtJlRYC5D0e*K~1RS zj12#)_YOXJ@v*)2>G=6uejK@!##5>VBBXpe z1o}Rj4PM;#tuZlcu8F@-bRs7fTiXU*ftp#tnorHb_rqAqj5mG#3Fl7aWk~ax7~$fr za1hA|3Hvs8sOV5>NCgJx5$x1NvvGG4UI$^$`WgD^)HDk{Im za`mVje{4#mvIdhr11$in!celdxr6zQEx$I%k}Q$0Gq-X2(XnGi4-U7ZfJCJzx*Qqv zfGGHspK=@tgM=kY8d_l$kpNMMH4I7~CkD;A#_A>U{vNy_1rASg?rGJ-=;GwL#*J$MP;@ z6H;jJW%O_{>R6;jY$P0x*81nI%5{VnN^E4WH_5>X&OPsz{9*``rxWd5``_JY*0Rfx zbbb!nfssfYOsXbcPrnY=#A8|NUsqoTAA5?db(PT-8NC#Sl5-s7-_N_c9k>Y%*baJ6 znJ350$ppo*sP>6lzY1!ACQT@Km%S{5EMbL1zS?P+2XsOf0%u)LIv-H3;buaDfNCrR!&k zdxB$;BFSQLQF;KE$2)yag++UZ7egzl|KIbx4!w>x@VVM~*n%TmAd%|RZU*wD6ey07 zoDRfgY%BHssHLfjLbLHH2E%7D+ z-@kdRl`*1l8Tn!N`+lx<4*!Ztnfk}9&U&tg5&_&~8QY_RUj*seg$cfdC5b$U$Os?% zQ%S4Tm*(~UbHl%l{CY00)z2zP9(MiVaPRaZ=QO(%ck5bEAAIy^JZ>nMPssRQk=6;! z!1odt6Tkwo&Oh%QV!EO5UYjrZDZ>ru1Wd6FfYji8)0W0LGrXjV;GaHutT^AHH>B=^ zmx5nE#0@_oI zH)w6xntbHQ8E5-|=AVz1H^2C??bj_aCdA_7A852?vKEadCqUdJglq#%5n2?t|HyuR zy#`{3Bw{o!C)F=))g-1hmyk^v4Ufll07x#**%-N1oYveHj7r=lGpqtF15>dh78@CM za7(44lq#0e@b=TEmLDeQ`gjW6t{_fZbUd`Zvde3Sx$mcQFsmpB_Jb?VIx)G?n@45c zAsC`Zl03?i)`5!2#2CP&EH30>nljQSJP94rhkK`gFJQ#618IOWMcw%D+TISwiy^%W zh?9gQn-6Mk^CJ%|>sC3luYJbc@CzQwHc7@sbrBo8tX-7mH_1B4zsjIxY3Dbua_Y<8 zg&sYc;g!}RWN%{X6PFniw$$97dp{uf*M!wI>nhfK%yM`(VMA@l5Ch*G)j#XDBsJEW zfrFWSYp3zCMP(QIwH(k<#UUCwIB`OTS_m-#1o}a}r>mU(5qLYa1X%KUp-{O z=Alh1TW00Q_ItGExp~H^34Ekio}Dt!&glAn{F;!Qa{Y0v)ib15l&j8XBu|Uw1n)Y^ zc}##F&6+>bSUK%tXU292K1vCGDgo=R>-zNSXBs9Bm5YHUWV9SVUFp*#3!Xq0CrhuW z_|ywJtMoLw{@Z+hcJVL2;RZhrZEze1O?i39=Q2j8y7xKQo^om6xN%)%6ey1*=O-DyU_ozh~%`u)7tUFXW^+{j~jBR{^`|KXeeyfJ%q+WmgCFZ5^j zgUH@}M9bQ%6&A)jQLJ-ORJ*c5Nzx&??^6x0t zEFTRNs|yOw7A;!}Y!5za#?=x?d{AAiS;RfVlwB$%gXX0AOioD*9HsvFahBKjquM)v z?JGFD+Gg9jM_PgYs_`;=bdfhMbndpsO(lm25rZAjshn*6w$8LJQgw1@eJLRU{YYVg z(x7|`@>lg%IzGgd6&a$a7R4@!3!%ys+@Avd`&THC&ViH&YZD(G;WPj{*0pex4BGCUpl;u$KMh9>2?4P{p{@EEN zZo%LE-XF_5l32daxiI6{p@N$aixsMe9W!)qzJha8VsAXApXae#9Gcv{l^?Q>_2@h# zD>KfJNRTjYm~H-jPYc_OPUCIoUGMYcoZXHojkf4M4l9bLo^4Q~AVUE^67 zty_hq7@wNyb^2lX&j9y*1s6ZO{ORRXm-l12bKm;B1^ko0-c=2azPNj5b)yTTzyG;q zh5w_k+Da->f_?QiJlf;vyd#I}SGIR(nwwMY{AtI`n(=9-4?~X)$xqlZ*4=ggfuoH# z*WM_}cfRbR_%+yP%hMjcQo2pAQjgeJ`)SoP`*TXq=K&4;4f;e|bnid;h&s^?{q{O4 zp7kgX8Gwj$4rvW7DQuHbnv$;Bs*t5>hSx@D{kacMgD3HZE~nD6m#j^O&eUGBIiP=6#}huSu?@v47cocU;wcvZGPUs=kwm*Gl)| z7NjSnc2yYiwa;$%-}gRgZ}2%Bckn{Or6u)eXYCwv#MonP@7hhRQxi8d>7(O$?@&K? zv$^K=KYI?*J_a~Mx5oI0AK-HiWDP3zK>q=bN8l&o@hOs4oKYf>oqM!8p#5yi9^(2Q zW@M$?kMTWOO94m>Z9f7Oenwt^sn5BBPoIqGu!T02hP8eael$#QiW@XzDDdf}(t97axOTeUFFaveFoU1Vq*g zq78W=Ds)ue{;v1hb|3Wz`bdwuniWrvtGGXpkNtb!|7!tIKr*KhNd;nLct1Bx+cS5^ z9M$9Fny-jkJi9FXQv4d-_P^V?s>fK~_uJs{`eBO&Q$hzlwW_=`#<^lulf^a<13!24 zxXZ(vTCd&l*Obt#M^TR|%nq)y%9}EFdETkJm*QQQKF>dPX6(&_JFN4v&Yk|Zd0tKR zbMuFq6Ba+a)##ha%=e>K^*c0$#qk1oS{>1c%dcT*)vbWSO za+k%8-(WmnfA{=0 zU#+xyU!M}Xu~O4leap^~(dK>Mwm#h0CLjv$|3kuy zVDng$wY*Q>rB&wCq8XqXf&LZK;cX&)<`%6Id=Fa&+~`p4&ZGb*#CfNyuo(vN%SEUj zsu(Yvy#QKHGm0(r5%U)^K0J+>FR_nMYdPWaG}~3H?u#f5%url27@{RkGE)$_b^PJ% zCt0Vg9{p7Kr0Fru^5!q?!b6YDL%YVlj_MplkMS0esr5m^NI{vY!RJRyVdOQ`IFZ&i@a*!qYm6pWPg5dmp zx~DZzB;b>{4$GXVMsfbWPqxsfFsi!%;s^I0V7hyc@AA)eq1@o`l}q|v8|M;5YPT6M zp!`8b(?34F{{DDPm$G@8g)2;J)|O1&d9}WadBn*H7IAmK6z=-);z?-ZYc(1kBM(e^ z>!7*VL94o}?X~YwDei_>>YXN!9XM#*PR@4Y^|ed;rwyOFT)PGpjIFPJKls|+qvwxS zosDNC)T~$X>T3MXrQ&+idflS2bkxe!Q&5CRHBKoE*_ZR=iAX`HAS$r47}Q%;kBXjg ztb-~Xf0Q^Epz+9+@V{fFIjc4TG|8X|z6bmzRjKH4nXi(O7ua&ly!By#uxU3k>|DkX zm_m#@yYTvz95ekcBh*gpJM`|DZJEvOJFQcOz5QT&W#^|mH#}^QKD|^(hWrqwv+>=8 zDXMk#UWZ@IuUVOQrn^F;>y4*x{CT9<)8ST>-f&9wbnl_<7kMSM^D+I4eh+l`A(;4m zm_&Bd-vb&HgaeTPJGo<>^&uLa-LCm`eckEbAq)QA&yJH>P;^u*QO^AX9=KqQDn@F6 zYcx5r^kfz15LqNS-I@cBz#ShHIL)pLvP3Ex9d~0YHY!^DD)uD3TZ?wLY|CRDPdgrT zo#;^Ke(v)FDUj9o;hV%*y4DPaiMIi4AU^_vQ7{>>pLG9%FvzyU%)M-8K1(YHAaQYm2*P z5C1;BY!Zj&;DMvJ`+BZD)YwM3&XB$Ebd_0%T|=0@Z_&c7tgJ|->LX)kFeHWlj~A8b z?AWn`_Z`qLzGXn?|7p?Cx169)6XZ@!x;}9(D=fStS-+w}hkan zqm64ZJ?>yu&Xe2!oJcoJ8yB}KO<|u&;P{~iw`!ZtGIw`6e6cFD{6rV z>1}z>Q^6KK;JpEU$!ASmK()(UbUVh`K3v<r*{Cq)$O_T$ zRr#H=g2t#Hdb?Tgg-cYz!Jbup@0zdKs=B;)FP~($HXEH{()V4DWvCi^<}d| zDs5Mo>!&Cw+;?!ve^iw+tlPaE+8&L2kGgVWRo$AtE1b^{AF9r?>`W*$|IGc*E_ajU^&=sC?)kG+B80(V5ow# zQ%wEM+&4JJ31Ec=q^aX6pDItF`iE9S?#!n+UjqYuXz+a9~tt;?7bhTonk)RyNhKVYM}CC7cA=bM&Y>=%0Rd15?6 z{4aN^Xc@kgEnC2pLN3dwwT6Zj73W}v@giU&{%F>WK3b14&@)yEr*lSnSC_JARPYD^ z!-0zCYWgdw^c39#db>NY&4A0J;Ge{~h`u!|D@&H~iH(5s`&lBJabBS8I4OVGH=i4> zhjR>OjBv;@J<@fw!J@hQUIfL?do!tv!qAyBb4==QZ2IkY`{$1L*(Y6g=9Q27(0SXg z9|~Cs20dGT_>dbLyvzA*XO-qgtoML8f-aEdiJ}fCH;J79ayVR zUDOMH_l4y_3+}^GO1^DT<(kB&r_wcXxpFRj;!8ObP%$S>h7)v)dLfY&&kMGOM@AI6 zm7DgBh>Ca+n0#l#rxd?$jb46u^Zwz_Cf7fV{hd~oJW%WBkYly)3jV#)Gra5LtYs(L zas3*vuiP-?yv}#qU)fFee5mN%KE+{4dDd}tK#9of`JFbUzDo3c@ZQ5-JN|H=N7fyG ze4Lsz-(`8;MX$aOHP#f4`Vm&WD|*?W3u`Kt+7F)Z_~k`$=8Jc#na4-E{M$i6Q}f#5 zg~=_e`rIA;vnu%2CZ)6|$#;UsE*|6ASEu5*(=t2v(bx8k9@X_`>eJncf0eb>?!C#$ z_OnN_!_yB5KfIKlKfmPB&u5|Q*3TV1i|Zo(sBJQL#EM+McK-jz)_ceG+`s+*Z<{!c zl+4qLmP9zoOoRr~kgQIUJ;SMJ*~(~W7?q?*kzFEXMG7f1Q8bX13Q4N({or%`{`%c+ z*X_El)5!b%dOe@VcpQ(%<4AG+&{)^wW2XI_@%!>tG#vl-q_KwmNcWlg2Tfwt>K&@h z8?fqekD!_>9cq59KT)-6=;QRM>Hf=9duYTkl%)%jsTrl9R+sUb;>rOYvg-Bq?W6wn z>%#ggWfo+TooRG_!~nc6VsZ$3O^m4}QOs)q6ZRU3oLRcqay~A{k3#gmQd%R{XD%)q zbeL&dCM=&Nb_cG%E_eOX&d4>9`?zrA*})ZqPaTceZ?NH5la)Uc?)B+ByyeNd(7`En znqg$)Uf=U(&Hvst)&F&2vk~il?tL;~{_#;CT7A5A$<^_@`3$3GV;uUvObSyyNC7`j zP;Gc*)b>rd2~0?CaJZP$c3?IG;bt#mpe*KN=WCxfg$7pMCgxyc zy(X$~$IOqA4e%-u`3>Vw%BZpNYRCl{T!^(NWy9|;?oX%q1?^JnE?rKp37CwM%Nq@m z=mdqXJ@mfX84O}*l}|riH|lcuz+;*WPa6yfZeT$MN$C2*YKULj^1D0t7c8CY*E2sj z&wbRgHxG55cFi=>yyJg;ra_zig?Sn`tCwN2LQSmC1{QR-F>5-PsYbEahd7E;rWi8^ z?x`5fxKO;wp?#w(kisb08@@ic?__8g&u9%H{Q>hDY4%}0$+U1aOUzN(_1D+``R)gV zHp=!)MnKK5R%C4)tY=>4Se_(SBsHdYQs1VTz17*8cD$WiWl!BsgZF-jFStVWEg)Xj$z}sKmkq!^)lpShLIcqPaqihB5fN5&2EX zJERH25sMTn&Pdb|;o}+Y&_h~qhtj_Tnm>HbEQjv-;Z62}5Il#EW;(tq8U*u5RFpAh zBtUaFZDp}H(Q6!qAFF8hs=$WdGJ2BLs2;Ux7FLO^v_{5xN_wonWRe+Dj3@vlNiljt{NwkIx z9<+JSmSXG6C>T=ftp6qOhJ0rRmJ`N@cYc$7@58>eE3cl|+(51aDTyb3R{X#V5b?^q zXU7f;Ub-nr;3n4biaKv-dXp}r+-Dvz|HIB@1SUTJwYAkNut7i0baw1NvJ#I0AC1$s z)YRggZwK&RQB8G5e@`z9xxtL~k|Y^L%M1~Eb-_(9^9g+=cl1T728%^xrMx$B9U-U{ z@S^!+ZQHfG1%y5g;wd~RDOy?|n&9m`%FxPcF9TNbK;j*_eE%q%kiLTeI%##x@f{I- zsK@P!Z{OVB>gen1TRlAk;>2+M$LGtX`i{vA*7^4`aQ3mzkS#L6$oTrLKbn{QiJ2iw zLB)~(RZ2oJ3JCs72%idOC&DZM8QLGDbxf&MtKjA(QXREU+`(gFGiNxItc#a1*SX&X zSoV}SMKXtyl^kmVDkb}JtI9oE`DuuI46uSQB(b%RAaIQRN7mJf$ebFxL%)9wk7nBA z5^j_A88&eV+dg*<%Yj)G_$(|}@?qjcQY9tjc3eiXoDi==^WWtEMdXzCKBsv+nH1#WF+f0dY@Yp$Vu}&gx00w06?!gU8D+4VuI@>5yH;0mHejVs1mFMau@z>|mw@G< zdYX5%INb}8$``wY(zd^!S57dE23lI#Y-ek0%TkS)HR@%m!qy}bXmu&P!k{7(f&$~* zqV;$YOH)ehLgIhy&$9x%=C$K+)CR5f{qk>iGiIP9uogeEmMxEhM2X)tJ?g&zMdH&ND@P@Y?&8~NL z7zjGsOD98V7n4EajrCCfG)J~oeJLw@4clY^wS9oLjcLgQ9^R4t`}U!euf9(sbx3py zGXDW|#0pn-&mo+_74FdTj{sR|henM89>xG@8{MAJRpEZ+U%t<)k;Sm+Eo?Gm7(&X- z+i%a&=b*j*{JHkNn51*!_96+8yiZkG56H+>!;FqaTtA6ZvQNml!s{92$T_&&Zr?us zQXLwh^dSTyt?c$H(I^bqn1nA+) zEBcW+mP89(ASM|u9FzB`Kf00C)!&z4k&3Zmeg6C#2GK(1fBW_}VOwz#8jMYh^&IHc zta0)L=-K~2!O-I$@Ua`n%mImxXiWen@Y-mFmKu|+zkHY10xq8BYz`kjoGrkUF1>*6 zB-`3RbC~`g(SB89ffzPUe0;@!j3!sXL%W5lo-RM-oIMz&JP`EbF^+Y4LBO^ALn4jk zQCjMH%y^z!NJrzARjH+M8EAmmBRGLkktNz1u}xqj=nl9(lS+p4*qM`)!`AtG(9Qz) zl*?{-e$;?(Ep?6NX%H+9d(_n;I%p@;LMS$8H^OGfikmfz=)u~M8JZU1o^$QEiVSZT z;5aTrU$h63*QFc&@+BPNwHSZmc*~Pj$Q5c&D z%>d4<0)Uu2*MR^Z`R}z&Qg_l(p2L6b@e)MQcSvO%s&}^eOaeLm;{rSVTG}DEsF0h>sctQk_S|hc+utk%Ow`mQi|=Q!JAn*!mLD| ztD^Kp+&3yS#LSeUMsy_B86K=HX*D07U}Fonw1w~`$oNSK8Kr!_dYaQtziLwXkRK|( z^4v*rhAX|&U^LZY_Pt=WP*mTP{TPTx{I3}EGZq>uPgu4R!qeOdBdJ|>R@OB*RUC?_ zBT0pv@Wbdun4I-66V{>7o3RAK>`JiLw8lbe#1Rilx)7JpYe)5rl9>TzyT}bPOPE)Ak=I|4o}Dy7iu1pEQ;iNi_MUTH6TH;a3#tC zB377s<)-R}Vs}j36U`pH_z9JR{Emx>90!Pt+LBe>l+&#f^B_OVieO|ao(vKi(8}zF zR}Bqu9_hccfzuWt^uR&pU^h18Z)M-JLEWmbnX`g}!x%+Gx~xZMHJ}2r499v3jmhIB zGAW44-LFRGiPX8jb#RyY^|%|&BkSCcxm0ghg>kb2i%P}mvu8yFWoDMK?#VjlX=_#= ztr`9+x7vMD-c-C(@Nb-UVX-Ps7E{)~ubCD^TQLQB4Nq(gH&*;kAS{=D%C@HXQh*hI z&2v?785`AljEbtMia-ApGSiRE6-EES2&{TlY4^LWDEb>RK7s{Lk~7OOOmJB}47hB} zQyep4!jA0z*`iejStJ!}b}`;zz77Ha4}2?fJFbtEsXY#gohOys0#5U9TF8*DHvA|a zuvk!e`S`F8Z3k74crr5DHpl8i)bNl!NG`_1lpx-x{q_@u`Xn-OXablH{JnPVTH54s zMCIR9MjQ!1t-Z6n;=al4^P65(UYR;CnL_0(q(KpBBJXQNFhMed^r>DvU%l@ zlMe>*?-~xOOsRQVd5M50iX()6B0)huM`2d8u$?Eak6G~U_`8h^Wsp29g^q@Hq^G`q z`Q{D;jRr|tmdjpTJQHJBwTw4%_2B(^F5WFeJ%DJonL$aAA z6M8fkJ1fSy;*$!mG;mJ?LlVZH^>5=TDCfnH9}qH{P^Z{oVAv5i7rNtl4JhJ-Q-~m^ zGoLo9(AA%iP>8~v94}7aTnh2UqjWe(j1*^L9)$o5@=mZPEJ>4^WMfg$JnGD=4AF;h z%eno?&02y;q5Rsz^&;$1Vvc?MZaf|4_g=X2)7w@5c5*kNhTnfM zlo7u%)%!{mG^E0J@7^hr5?Wi$J1NX3vhx7&Kjxk{2zVm$;zOdJEx%H@?&Gs-=#B7l zy@lnB0?QT#(ew?}ab;+xS2B;p9iuA8AR|CaBz?3c64X(I`plP6DLvHOqBK7WvA>{| zBD?vTm&p1oR>KQn6-IhW<&7Tjq%4&Heu)iSWtl(G^q8D-U%yY40?+c5it`=#B!2w$edC_><++6n#f{*ic=jFv$8{#nU+!v^8l{x}e{{ zfr5BShXkKp3iE-39BsYzY@z!`Yd7B zHa9_9ILg7^{rgY(7P57#@uf0R$z4;>N8~|8;V&~8c2V&00{gCm z@g)3F`~}!ZO^-2ZU!y#gxBp=oz=7a}9`gBo2!Q%5x@PfVftH(pXDWnyBr~ZbCP+fU z;=Ous(k%sdT#y|o(?undl4L_Qe(@#k_kS)uZkFsUi&HBwf)!wl!E~NWEt!`S2ro@1 zeNV3Gb42>q7= z%yL?{EsAbr4bF`aXxaAyA=TU#R}`DzJVF^D?0wAi?(zG~;v%R)MT>XBZh!z@%=U{L zv|Qm=(aFffpv3j4G9r+GJ-)GwrG+j)RdS0;2`BDiWJw^pmYfV4_}hc?UB~cu;m&)% z{}~VD7GlP>&p|dNtqp7lnA~LX^!UH7IZWO!ga7&N8Bel;y=1J!KHn$tYH-{9;BFPGGs=E_ z!&X<}Y^5HJ9!MO0yHwD^>>zRQgbNW=-un{5EGuNBTSrfxeM&-ux@vLVB05ZAF>8yp zp&pn#Ok1Cs$75~keC~}So+%tZ!!^rrt_wi2I zj-vc`aia9)O@nYCcQ~9fGIKqHof3vDvIGO~q6Zs1QdEqJM$iNb#zEUFoP65GfIVMr zM(|-cxbRS=Z^gTpR)UDJjf6#};ZrD(twbGhU+a{t&r#cNuyoMnW}z zpK5UkY*|V(kpO@>NmV5$jBWzI57Y7Oz$2<6iVNG@hm(#Z`r3ZLvf%$CAbX+p8I0ldgV@~m5EGc_gwet1QES<66yWg&OijGSB$t6}YF`?hmr`S^De$v`G2KpTRB0Fqs4j7y zYTZ0)e?e&K5A?+-P|Bo~n(v*sD?R)5YYn4>4=Y>zxYi2*i0Rl3OP(3*3CT~ZEpk1Y zwnSFB(u;^Fav>!SW%yxOf1*#P^qh;yJ-qF7A~f~x0?J-NM3~lVy;3#WG1J_tL}3t0 zw%}zPBUr^0m~~Hn#EG>-AVm4+$XS;mO4G77u&#g^w9hW514?}oYCFQEyrJRpli%w# zXx!ozKVC)C!terB*9J*NR8}MiRdWq}SrQ=IbA)J0YQ&JpmkMo7BacN6d2eV4$-HMy zpSIA&S3%$`nJutk3>8B8wQnQYafcWUB};y8mof838ib|9ae_pwh|9kh>vZ6E$sR05 z8UV6dQzEu3UJ8%h&(E(Uxe0pjm{vK2(X+Jh^e9YAMUDgxa`@=cTU1hF)`}J`5>-ab zo-5d>1?brB;hxu9acTG81PShu&EP=V{ncbuiirM$2Dz=MO&|}KhJO5AbijB~(VPA2 zNP@5HhGA%%N4gzT@-r3*K9!!Z!clv2d8RL)vENKcw=>pMH^xzI^q4UXxO5Cq%8UVt z7eeEr1$adXg9i6c!GqfO0V6OW1ySfdcodNFSOI&T-+#!qs8{#uLM2;JxeDe_rv)Nw zfsOM2$mn$N<#|857X8}hTe06r3%pz|KhYnm@HN=;G9Clj;f`96pCSGV)I&vwL;m!U zE4#6iV&AV*nr%g^B1YKAuqlZsoVEj+w_LDrVHy~uELIZRSndRi)pGX<&I>h+c$=TKdhK`nr^DfaLWL%$}wR2+@jH<_B6uZVi%(B~j0aq*`~ z;OkoeXEVlRs`O*SioNZbqi}0v(fQrGeR9{NWqc}fuDv7)jKRkcwxcUJNn_}WfIb*+ z$?_A~I1j8Oi{Tg-$e0HqCuT9I0%DXhsg2Vh+Ox2^m-I4_TKJo+rV-ZzR-#DHDxffE zBvp|q?H}r&xc8grYs9sbtS&22#F>-vzAU7|U4>A|Hlye3%8wnNk??s~4!hV*XgzbF z9r7=|rHBz)EjK^;+$b<5{1L>2B<2$vpk-|v;V^5=%`#lzrvC2xsnBdK*jpj3b!wg2di&m~Sjl!S4zg}w$ zIzjkl864k9b|^sjo+3x*(j#oZ5ooJ{iZHX10oz3>;t{A&V2El>&=*b) ztP(3?YD0Qs;7-{Xuh7J!lM||>(RP2Ylg(48=X)Dr}9tNOb9;47v7-a(yGkMqJY#=d0Dd6i?%=J`b!G&dMo0( z*iD~~r_LCTzBHC#z2&b3#jP{(b{>$$^pQ?L%<>7O9$z93w(bCq>IsENG)!<@Xyqja zg1uC5y&HQn$GdKFHU((399K?`sZE!gFb55sigsMT-<}To1)%;4QAHxR zdR$)l(*5%?svf|xh5$Agy~Rz>1A?ubJrJ{cN&#PTAETOc z^|3ZL4+hmawCp`(=kcq#-%F|1g_TP({CEERab!sDMzSaQ zj3he~KfA0RdBEk2Jewuv9!$#;lORAsnRPU&yP{@Pq$^|uFceIU(h-ZJ;n{wzuA*m(oPqWJJaqKN&D+P$SY`lNiTE z9(sJ(ZMWy$1X59uKTMyE74d*qA#|7DeYDs6U^J4IZbECvVE4UNL#J&T7ZTt=HF^1K_Y1l?M5 z$|HZP-k32r)_gFn9C4$eh7Amv(LTI_vBU3Tj8&d6cO?VO;Xz!vKghwKb(4 z6{HDBbSFOhHXPl$;p@=v|7e`iIRI5f2xgo~**P%5e=L9E(v9^WzOhb-VuAy4o#T_1 zkFnYB|;jEPr>o*GO1q(D2ztWpb6#yibJEvud*gY zzH$5p9XAc(HQqq_pj*6#vXr_SADm*8iFYoRr%s++=H-UJnk<44r));Ky$V#eq|0U} zkjW;fwqn*0; z^z>x@Cx9~b6Vd#A%aTyE#3J>T6^yR->(>vZ^^!fxtV!6G?_Rx|<6t>$+61Z#IR$@w zxe@X4AF`f&acASyHdVXRO^OC=9o(I96=*bdiC&#%?~g~LqUsr|W#;DQih~jO$|S-g zsQmgRvl}!T-Fi#x}h8s&Ff=Zf~m-jtD4)6ZmpdH z)}e0V9~%`oo)u~b4jf?oos#9A-7pc=qhSff;Qsq4@D(ZuIuM?1mLvMxYO~rDhW*bQ?Z=rtALi-s&cn z>zW2yQWr5K7mcVV%nhk|YGJ=9HE&+*Xib_tdB0!&Vk&`R3P3@^m_o?Q<&yH&BV6PdAsH6)N{|9Qmn?$YR{;4_7o{5t_u#Dmd#t3IFToAC9(`O#% zRKptJpl9oFOT@ZOrjo!JyZ}YIt>YNYQDv^~t5x3WQ}*&b`{9(sejjmxpmOa?saU?{ zDy)YxN&;m(HYfy&y)U6YV0&(N6LA=#U%m4Qk1}PR2NPBAKihcbP@)JZFB^;b=zy2r z$tT1{LXNSR%HU`qMK$;B3~-H1h`91U-W*&ZqyU~5ld0psder7Tqkg+ep=k%2fbw8~ zfq{Wx)`x57s@J2IMfd|8ARh`7No=epy4N;0a)e+lO=sTmp?dTETZ=FiUgs4k2Hfhqt+}!-p@cI(jW*zPB)uHJrS@p#DaGs;%Dh$v4lGJ8n zXOK9aebX62bv`d*bbKixVBAB6){ zUS5v>!Z?(HUArE7JJs33`e3I4^Ue2Hzf4@coj$9camKW_Z{DPPp_@lF-zc-^_3MAGu8ua{>zqQ&0(U|;df?I+m+rLLysuU4GZE$b=at%9z@T{c z;&b-CrEzQRtufy(MOxStwo4!HuTBTy8KGzQ6k9Z&%nv3ateQW2;K+t`JKi3&H~;{a z#j0e~d9s6;Q}wcYv*ND=e`WUgve@kTT-oEt_FxYFh170Mi`RkzkhpHphl)+bqb_^8 zH4QZ6D^NiTz)v-&X|qW+W{*d0)pi&fD)`A5`|VWRN~+81=8v4AIUWB5`}g{@4;M&Oh!yUN<2js{4m;ve>9@Qb5S! zS{){!l00}@jlH$QMncP=>Z|wVN0~!;MTJ~SZl7V+Su4(x6gb2(Teo}n?)AdBXw#

          +tngLOu(B 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

          aOlzd1h46 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 H^EUkt@^FJN literal 0 HcmV?d00001 From 0f57ac91d1b259e0ed5d9f9d6bad230792ad9b18 Mon Sep 17 00:00:00 2001 From: Kiryl Alishkevich Date: Mon, 18 May 2026 22:59:16 +0200 Subject: [PATCH 5/5] Fix requirements.txt --- requirements.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/requirements.txt b/requirements.txt index e69de29..bd58b66 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1,44 @@ +asgiref==3.9.2 +attrs==25.4.0 +autobahn==25.10.2 +Automat==25.4.16 +cffi==2.0.0 +channels==4.3.1 +channels-redis==4.3.0 +click==8.3.0 +colorama==0.4.6 +constantly==23.10.4 +cryptography==46.0.3 +daphne==4.2.1 +Django==5.2.6 +django-extensions==4.1 +djangorestframework==3.16.1 +graphviz==0.21 +gunicorn==23.0.0 +h11==0.16.0 +hyperlink==21.0.0 +idna==3.11 +incremental==24.7.2 +iniconfig==2.3.0 +msgpack==1.1.2 +packaging==25.0 +pluggy==1.6.0 +psycopg2-binary==2.9.10 +pyasn1==0.6.1 +pyasn1_modules==0.4.2 +pycparser==2.23 +pydot==4.0.1 +Pygments==2.19.2 +pyOpenSSL==25.3.0 +pytest==8.4.2 +pytest-django==4.11.1 +python-dotenv==1.1.1 +redis==7.0.1 +service-identity==24.2.0 +sqlparse==0.5.3 +Twisted==25.5.0 +txaio==25.9.2 +typing_extensions==4.15.0 +tzdata==2025.2 +uvicorn==0.37.0 +zope.interface==8.0.1