diff --git a/api/migrations/0047_notification.py b/api/migrations/0047_notification.py new file mode 100644 index 00000000..b0eaf976 --- /dev/null +++ b/api/migrations/0047_notification.py @@ -0,0 +1,30 @@ +# Generated by Django 5.0.6 on 2024-06-09 10:21 + +import django.db.models.deletion +import django.utils.timezone +import uuid +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0046_alter_currency_currency'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Notification', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('reference', models.UUIDField(default=uuid.uuid4, editable=False)), + ('created_at', models.DateTimeField(default=django.utils.timezone.now)), + ('title', models.CharField(default=None, max_length=120)), + ('description', models.CharField(blank=True, default=None, max_length=120)), + ('order', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='api.order')), + ('user', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/api/models/__init__.py b/api/models/__init__.py index d29ac0e4..645a7fac 100644 --- a/api/models/__init__.py +++ b/api/models/__init__.py @@ -4,5 +4,14 @@ from .market_tick import MarketTick from .onchain_payment import OnchainPayment from .order import Order from .robot import Robot +from .notification import Notification -__all__ = ["Currency", "LNPayment", "MarketTick", "OnchainPayment", "Order", "Robot"] +__all__ = [ + "Currency", + "LNPayment", + "MarketTick", + "OnchainPayment", + "Order", + "Robot", + "Notification", +] diff --git a/api/models/notification.py b/api/models/notification.py index 0997d3a3..c65655f6 100644 --- a/api/models/notification.py +++ b/api/models/notification.py @@ -2,7 +2,8 @@ import uuid from decouple import config -from django.contrib.auth.models import User, Order +from django.contrib.auth.models import User +from api.models import Order from django.db import models from django.utils import timezone @@ -25,8 +26,8 @@ class Notification(models.Model): reference = models.UUIDField(default=custom_uuid, editable=False) created_at = models.DateTimeField(default=timezone.now) - user = models.ForeignKey(User, on_delete=models.SET_NULL, default=None) - order = models.ForeignKey(Order, on_delete=models.SET_NULL, default=None) + user = models.ForeignKey(User, on_delete=models.CASCADE, default=None) + order = models.ForeignKey(Order, on_delete=models.CASCADE, default=None) # notification details title = models.CharField(max_length=120, null=False, default=None) diff --git a/api/notifications.py b/api/notifications.py index 1967302d..b042d202 100644 --- a/api/notifications.py +++ b/api/notifications.py @@ -1,9 +1,10 @@ from secrets import token_urlsafe from decouple import config - -from api.models import Order -from api.models import Notification +from api.models import ( + Order, + Notification, +) from api.utils import get_session