
import datetime

from management.models.audit_log import AuditLog
import datetime

from management.repositories.base import BaseRepository
from management.serializers.audit_log_serializer import AuditLogSerializer
from django.db import transaction

class AuditLogRepository(BaseRepository):
    entity=AuditLog

    @transaction.atomic
    def save(self, dto) -> tuple:
        audit_log_id= dto.get("id")
        if audit_log_id:
            try:
                instance = AuditLog.objects.get(id=audit_log_id)
            except AuditLog.DoesNotExist:
                return False, {"detail": "AuditLog not found"}
            serializer = AuditLogSerializer(instance, data=dto, partial=True)
        else:
            dto["data_ora_creazione"] = datetime.now()
            serializer = AuditLogSerializer(data=dto)
        

        serializer.is_valid(raise_exception=True)
        audit_log = serializer.save()
        return True, {"id": audit_log.id}