@@ -1,5 +1,6 @@ from decimal import Decimal from typing import Any, Tuple +from uuid import UUID from rest_framework.request import Request @@ -16,6 +17,7 @@ from authentication.models import ( BusinessAccount, BusinessUserHost, CustomUserModel, + BusinessGroup, ) from authentication.selectors.account_status_selector import ( AccountStatusSelector, @@ -65,7 +67,7 @@ class BusinessHostService: EmailService.send_corporate_greeting_email(account_service.account, password) return account_service - def create_existing(self, email: str, account_privileges: str) -> BusinessAccountService: + def create_existing(self, email: str, account_privileges: str, group: UUID | None = None) -> BusinessAccountService: company = self.user.host or self.user.employee.parent_company try: user = UserSelector.get_by_email(email.lower()) @@ -82,6 +84,8 @@ class BusinessHostService: company, account_privileges=account_privileges, ) + account_service.account.group = BusinessGroup.objects.filter(uid=group, parent_company=company).first() + account_service.account.save() if not user.is_deleted: EmailService.send_corporate_invitation_email(account_service.account, company) else: @@ -90,7 +94,6 @@ class BusinessHostService: user.is_deleted = False user.save() EmailService.send_corporate_greeting_email(account_service.account, password) - return account_service def create(self, request: Request) -> BusinessAccountDataSerializer: @@ -160,6 +160,7 @@ class NewBusinessAccountSerializer(serializers.Serializer): account_privileges = serializers.ChoiceField( choices=AccountPrivileges.choices, default=AccountPrivileges.REGULAR ) + group = serializers.UUIDField(required=False) class DeleteBusinessAccountSerializer(serializers.Serializer):