diff --git a/core/apps/dashboard/serializers/plan.py b/core/apps/dashboard/serializers/plan.py index 9f220f7..f947014 100644 --- a/core/apps/dashboard/serializers/plan.py +++ b/core/apps/dashboard/serializers/plan.py @@ -27,7 +27,7 @@ class PlanListSerializer(serializers.ModelSerializer): def get_user(self, obj): return { 'id': obj.user.id, - 'first_name': obj.user_first_name, + 'first_name': obj.user.first_name, 'last_name': obj.user.last_name, } diff --git a/core/apps/orders/migrations/0005_payment.py b/core/apps/orders/migrations/0005_payment.py new file mode 100644 index 0000000..922d5ac --- /dev/null +++ b/core/apps/orders/migrations/0005_payment.py @@ -0,0 +1,27 @@ +# Generated by Django 5.2 on 2025-12-01 11:07 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('orders', '0004_order_file'), + ] + + operations = [ + migrations.CreateModel( + name='Payment', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('price', models.DecimalField(decimal_places=2, max_digits=15)), + ('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='payments', to='orders.order')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/core/apps/orders/models/__init__.py b/core/apps/orders/models/__init__.py index 03c8670..025faed 100644 --- a/core/apps/orders/models/__init__.py +++ b/core/apps/orders/models/__init__.py @@ -1,3 +1,4 @@ from .product import * from .order_item import * -from .order import * \ No newline at end of file +from .order import * +from .payment import * \ No newline at end of file diff --git a/core/apps/orders/models/payment.py b/core/apps/orders/models/payment.py new file mode 100644 index 0000000..ba78987 --- /dev/null +++ b/core/apps/orders/models/payment.py @@ -0,0 +1,16 @@ +# django +from django.db import models + +# shared +from core.apps.shared.models import BaseModel +# orders +from core.apps.orders.models import Order + + +class Payment(BaseModel): + order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name='payments') + price = models.DecimalField(max_digits=15, decimal_places=2) + + def __str__(self): + return self.price + diff --git a/core/apps/orders/views/order.py b/core/apps/orders/views/order.py index 6e242ef..0442c63 100644 --- a/core/apps/orders/views/order.py +++ b/core/apps/orders/views/order.py @@ -8,7 +8,7 @@ from rest_framework import generics, permissions from drf_yasg.utils import swagger_auto_schema # orders -from core.apps.orders.models import Order, OrderItem +from core.apps.orders.models import Order, Payment from core.apps.orders.serializers.order import OrderCreateSerializer, OrderListSerializer, OrderUpdateSerializer # shared from core.apps.shared.utils.response_mixin import ResponseMixin @@ -78,6 +78,10 @@ class OrderUpdateApiView(generics.GenericAPIView, ResponseMixin): if serializer.is_valid(): paid_price = serializer.validated_data.get('paid_price') obj.paid_price = paid_price + Payment.objects.create( + order=obj, + price=paid_price + ) obj.save() return self.success_response( data=OrderListSerializer(obj).data,