change structure of provider companies to organizations

This commit is contained in:
2025-08-10 12:30:48 +03:30
parent 91d9025751
commit a28a1307cc
2 changed files with 22 additions and 25 deletions

View File

@@ -41,8 +41,8 @@ class Device(BaseModel):
latitude = models.FloatField(default=0) latitude = models.FloatField(default=0)
longitude = models.FloatField(default=0) longitude = models.FloatField(default=0)
is_activated = models.BooleanField(default=False) is_activated = models.BooleanField(default=False)
company = models.ForeignKey( organization = models.ForeignKey(
ProviderCompany, Organization,
on_delete=models.CASCADE, on_delete=models.CASCADE,
related_name='devices', related_name='devices',
null=True null=True
@@ -73,10 +73,10 @@ class DeviceActivationCode(BaseModel):
related_name="code", related_name="code",
null=True null=True
) )
company = models.ForeignKey( organization = models.ForeignKey(
ProviderCompany, Organization,
on_delete=models.CASCADE, on_delete=models.CASCADE,
related_name='code', related_name='device_activations',
null=True null=True
) )
code = models.CharField(max_length=10, null=True, unique=True) code = models.CharField(max_length=10, null=True, unique=True)
@@ -97,10 +97,10 @@ class DeviceVersion(BaseModel):
related_name='devices_version', related_name='devices_version',
null=True null=True
) )
company = models.ForeignKey( organization = models.ForeignKey(
ProviderCompany, Organization,
on_delete=models.CASCADE, on_delete=models.CASCADE,
related_name='devices_company', related_name='device_versions',
null=True null=True
) )
name = models.CharField(max_length=250, null=True) name = models.CharField(max_length=250, null=True)
@@ -210,10 +210,10 @@ class POSClientAttributeValue(BaseModel):
class DeviceAssignment(BaseModel): class DeviceAssignment(BaseModel):
company = models.ForeignKey( organization = models.ForeignKey(
ProviderCompany, Organization,
on_delete=models.CASCADE, on_delete=models.CASCADE,
related_name='assignments', related_name='device_assignments',
null=True null=True
) )
client = models.ForeignKey( client = models.ForeignKey(

View File

@@ -4,6 +4,7 @@ from apps.pos_device.web.api.v1.serilaizers import device as device_serializer
from apps.authorization.api.v1.serializers import UserRelationSerializer from apps.authorization.api.v1.serializers import UserRelationSerializer
from apps.authentication.api.v1.api import UserViewSet from apps.authentication.api.v1.api import UserViewSet
from apps.authorization.models import UserRelations from apps.authorization.models import UserRelations
from common.helpers import get_organization_by_user
from rest_framework.exceptions import APIException from rest_framework.exceptions import APIException
from apps.pos_device import models as pos_models from apps.pos_device import models as pos_models
from rest_framework.response import Response from rest_framework.response import Response
@@ -36,7 +37,7 @@ class ProviderCompanyViewSet(viewsets.ModelViewSet): # noqa
url_name='psp_users', url_name='psp_users',
name='psp_users' name='psp_users'
) )
def users_with_psp_org(self): def users_with_psp_org(self, request):
""" list of psp users """ """ list of psp users """
users = UserRelations.objects.filter( users = UserRelations.objects.filter(
@@ -57,11 +58,9 @@ class DeviceViewSet(viewsets.ModelViewSet):
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
""" Custom create of pos devices """ """ Custom create of pos devices """
if 'company' not in request.data.keys(): if 'organization' not in request.data.keys():
company = pos_models.ProviderCompany.objects.get( organization = get_organization_by_user(request.user)
user_relation__user=request.user request.data.update({'organization': organization.id})
)
request.data.update({'company': company.id})
# create device # create device
serializer = self.serializer_class(data=request.data) serializer = self.serializer_class(data=request.data)
@@ -83,7 +82,7 @@ class DeviceViewSet(viewsets.ModelViewSet):
""" list of company devices """ """ list of company devices """
devices = self.queryset.filter( devices = self.queryset.filter(
company__user_relation__user=request.user organization=get_organization_by_user(request.user)
) )
# paginate devices # paginate devices
@@ -132,11 +131,9 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
def device_assignment(self, request): def device_assignment(self, request):
""" assign pos device to client by company """ """ assign pos device to client by company """
if 'company' not in request.data.keys(): if 'organization' not in request.data.keys():
company = pos_models.ProviderCompany.objects.get( organization = get_organization_by_user(request.user)
user_relation__user=request.user request.data.update({'organization': organization.id})
)
request.data.update({'company': company.id})
# create assignment # create assignment
serializer = self.serializer_class(data=request.data) serializer = self.serializer_class(data=request.data)
@@ -144,8 +141,8 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
assignment = serializer.save() assignment = serializer.save()
# set organization having pos status # set organization having pos status
assignment.company.user_relation.organization.has_pos = True assignment.organization.has_pos = True
assignment.company.user_relation.organization.save() assignment.organization.save()
return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN) return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)