optimize load balance for inventory list in pos - add new fields to stake holdes

This commit is contained in:
2025-08-31 14:51:08 +03:30
parent dd5be869c5
commit 27046f20e9
8 changed files with 118 additions and 113 deletions

View File

@@ -0,0 +1,28 @@
# Generated by Django 5.0 on 2025-08-31 11:17
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('pos_device', '0064_brokerstakeholderassignment'),
('product', '0071_quotaincentiveassignment_livestock_type_and_more'),
]
operations = [
migrations.AddField(
model_name='stakeholders',
name='broker',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='pos_stake_holders', to='product.broker'),
),
migrations.AddField(
model_name='stakeholders',
name='broker_amount',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='pos_stake_holders', to='product.quotabrokervalue'),
),
migrations.DeleteModel(
name='BrokerStakeHolderAssignment',
),
]

View File

@@ -1,13 +1,11 @@
import random
import string
from apps.authentication.models import Organization
from apps.product.models import Broker
from apps.product.models import Product
from apps.product.models import Product, Broker, QuotaBrokerValue
from django.contrib.postgres.fields import ArrayField
from apps.authorization.models import UserRelations
from apps.authentication.models import Organization
from apps.core.models import BaseModel
from django.db import models
import random
import string
class ProviderCompany(BaseModel):
@@ -258,6 +256,18 @@ class StakeHolders(BaseModel):
related_name='pos_stake_holders',
null=True
)
broker = models.ForeignKey(
Broker,
on_delete=models.CASCADE,
related_name='pos_stake_holders',
null=True
)
broker_amount = models.ForeignKey(
QuotaBrokerValue,
on_delete=models.CASCADE,
related_name='pos_stake_holders',
null=True
)
share_percent = models.FloatField(default=0)
default = models.BooleanField(default=False)
@@ -295,29 +305,3 @@ class POSFreeProducts(BaseModel):
def save(self, *args, **kwargs):
return super(POSFreeProducts, self).save(*args, **kwargs)
class BrokerStakeHolderAssignment(BaseModel):
device = models.ForeignKey(
Device,
on_delete=models.CASCADE,
related_name="stake_brok_assigment",
null=True
)
stake_holder = models.ForeignKey(
StakeHolders,
on_delete=models.CASCADE,
related_name='stake_brok_assignment',
null=True
)
broker = models.ForeignKey(
Broker,
on_delete=models.CASCADE,
related_name='stake_brok_assignment',
null=True
)
def save(self, *args, **kwargs):
return super(BrokerStakeHolderAssignment, self).save(*args, **kwargs)

View File

@@ -86,9 +86,3 @@ class StakeHoldersSerializer(ModelSerializer):
).data
return representation
class BrokerStakeHolderAssignSerializer(ModelSerializer):
class Meta:
model = pos_models.BrokerStakeHolderAssignment
fields = '__all__'

View File

@@ -10,7 +10,6 @@ router.register(r'provider', device_views.ProviderCompanyViewSet, basename='prov
router.register(r'device', device_views.DeviceViewSet, basename='device')
router.register(r'device_assignment', device_views.DeviceAssignmentViewSet, basename='device_assignment')
router.register(r'stake_holders', device_views.StakeHoldersViewSet, basename='stake_holders')
router.register(r'broker_stake_assign', device_views.BrokerStakeHolderAssignViewSet, basename='broker_stake_assign')
urlpatterns = [
path('v1/pos/', include(router.urls))

View File

@@ -325,7 +325,3 @@ class StakeHoldersViewSet(viewsets.ModelViewSet, DynamicSearchMixin, SoftDeleteM
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
class BrokerStakeHolderAssignViewSet(viewsets.ModelViewSet, DynamicSearchMixin, SoftDeleteMixin):
queryset = pos_models.BrokerStakeHolderAssignment.objects.all()
serializer_class = device_serializer.BrokerStakeHolderAssignSerializer