Skip to content

Commit bc16ba0

Browse files
Merge pull request #72 from druling/dev
Release 2025-02-27
2 parents 1afbde6 + 174c1a4 commit bc16ba0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+1428
-24
lines changed

commons/models/BaseModel.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,8 @@ def delete(self, using=None, keep_parents=False):
3535
def restore(self):
3636
self.deleted_at = None
3737
self.save()
38+
39+
"""Perform a hard delete by permanently removing the record from the database."""
40+
41+
def hard_delete(self, using=None, keep_parents=False):
42+
super(BaseModel, self).delete(using=using, keep_parents=keep_parents)

favourite/__init__.py

Whitespace-only changes.

favourite/apps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.apps import AppConfig
2+
3+
4+
class FavouriteConfig(AppConfig):
5+
name = "favourite"
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Generated by Django 4.2.17 on 2025-02-25 04:12
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
import uuid
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
initial = True
11+
12+
dependencies = [
13+
("item", "0002_addon_itemvariation_itemaddon"),
14+
("branch", "0003_branch_is_active"),
15+
]
16+
17+
operations = [
18+
migrations.CreateModel(
19+
name="Favourite",
20+
fields=[
21+
(
22+
"id",
23+
models.UUIDField(
24+
default=uuid.uuid4,
25+
editable=False,
26+
primary_key=True,
27+
serialize=False,
28+
),
29+
),
30+
("created_at", models.DateTimeField(auto_now_add=True)),
31+
("updated_at", models.DateTimeField(auto_now=True)),
32+
("deleted_at", models.DateTimeField(blank=True, null=True)),
33+
(
34+
"branch",
35+
models.ForeignKey(
36+
on_delete=django.db.models.deletion.CASCADE,
37+
related_name="favourites",
38+
to="branch.branch",
39+
),
40+
),
41+
(
42+
"item",
43+
models.ForeignKey(
44+
on_delete=django.db.models.deletion.CASCADE,
45+
related_name="favourites",
46+
to="item.item",
47+
),
48+
),
49+
],
50+
options={
51+
"db_table": "favourite",
52+
},
53+
),
54+
migrations.CreateModel(
55+
name="CustomerFavourite",
56+
fields=[
57+
(
58+
"id",
59+
models.UUIDField(
60+
default=uuid.uuid4,
61+
editable=False,
62+
primary_key=True,
63+
serialize=False,
64+
),
65+
),
66+
("created_at", models.DateTimeField(auto_now_add=True)),
67+
("updated_at", models.DateTimeField(auto_now=True)),
68+
("deleted_at", models.DateTimeField(blank=True, null=True)),
69+
("note", models.CharField(blank=True, max_length=200, null=True)),
70+
(
71+
"branch",
72+
models.ForeignKey(
73+
on_delete=django.db.models.deletion.CASCADE,
74+
related_name="customer_favourites",
75+
to="branch.branch",
76+
),
77+
),
78+
(
79+
"item",
80+
models.ForeignKey(
81+
on_delete=django.db.models.deletion.CASCADE,
82+
related_name="customer_favourites",
83+
to="item.item",
84+
),
85+
),
86+
],
87+
options={
88+
"db_table": "customer_favourite",
89+
},
90+
),
91+
]

favourite/migrations/__init__.py

Whitespace-only changes.

favourite/models/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from .favourite import Favourite
2+
from .customer_favourite import CustomerFavourite
3+
4+
__all__ = [Favourite, CustomerFavourite]
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from django.db import models
2+
3+
from branch.models import Branch
4+
from commons.models.BaseModel import BaseModel
5+
from item.models import Item
6+
7+
8+
class CustomerFavourite(BaseModel):
9+
branch = models.ForeignKey(
10+
Branch, related_name="customer_favourites", on_delete=models.CASCADE
11+
)
12+
item = models.ForeignKey(
13+
Item, related_name="customer_favourites", on_delete=models.CASCADE
14+
)
15+
note = models.CharField(max_length=200, blank=True, null=True)
16+
17+
def __str__(self):
18+
return f"{self.item.name} - {self.branch.name}"
19+
20+
class Meta:
21+
db_table = "customer_favourite"

favourite/models/favourite.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from django.db import models
2+
3+
from branch.models import Branch
4+
from commons.models.BaseModel import BaseModel
5+
from item.models import Item
6+
7+
8+
class Favourite(BaseModel):
9+
branch = models.ForeignKey(
10+
Branch, related_name="favourites", on_delete=models.CASCADE
11+
)
12+
item = models.ForeignKey(Item, related_name="favourites", on_delete=models.CASCADE)
13+
14+
def __str__(self):
15+
return f"{self.item.name} - {self.branch.name}"
16+
17+
class Meta:
18+
db_table = "favourite"

favourite/serializer/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from .favourite import FavouriteSerializer
2+
from .customer_favourite import CustomerFavouriteSerializer
3+
4+
__all__ = [FavouriteSerializer, CustomerFavouriteSerializer]
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from rest_framework import serializers
2+
3+
from branch.models import Branch
4+
from commons.serializer.BaseModelSerializer import BaseModelSerializer
5+
from item.models import Item
6+
7+
from ..models import CustomerFavourite
8+
9+
10+
class CustomerFavouriteSerializer(BaseModelSerializer):
11+
branch_id = serializers.PrimaryKeyRelatedField(
12+
queryset=Branch.objects.all(), required=True, source="branch"
13+
)
14+
item_id = serializers.PrimaryKeyRelatedField(
15+
queryset=Item.objects.all(), required=True, source="item"
16+
)
17+
18+
class Meta:
19+
model = CustomerFavourite
20+
fields = [
21+
"id",
22+
"branch_id",
23+
"item_id",
24+
"note",
25+
]

0 commit comments

Comments
 (0)