
from management.models.pratica import Pratica
from management.repositories.base import BaseRepository
from django.db import transaction

from management.serializers.pratica_serializer import PraticaSerializer

class PraticaRepository(BaseRepository):
    entity=Pratica

    @transaction.atomic
    def save(self, dto)->tuple: #(True, {})
        pratica_id = dto.get("id")
        if pratica_id:
            try:
                instance = Pratica.objects.get(id=pratica_id)
            except Pratica.DoesNotExist:
                return False, {"detail": "pratica not found"}
            serializer = PraticaSerializer(instance, data=dto, partial=True)
        else:
            serializer = PraticaSerializer(data=dto)
        

        serializer.is_valid(raise_exception=True)
        plan = serializer.save()
        return True, {}