import uuid
import os

from management.models.audit_log import AuditLog
from django.contrib.contenttypes.models import ContentType

from management.models.utente import Utente

def upload_to_flusso_attachments(flusso_id, filename):
    ext = filename.split('.')[-1]
    filename = f"{uuid.uuid4()}.{ext}"
    return os.path.join('flusso_allegati', str(flusso_id), filename)


def upload_to_review_attachments(review_id, filename):
    ext = filename.split('.')[-1]
    filename = f"{uuid.uuid4()}.{ext}"
    return os.path.join('review_allegati', str(review_id), filename)

def create_audit_log(
    user,
    activity_type,
    entity,
    entity_name,
    entity_id=None,
    old_values=None,
    new_values=None
):
    user = Utente.objects.get(id=user) if user else None

    AuditLog.objects.create(
        user=user,
        username=user.nome+' '+user.cognome if user else '',
        activity_type=activity_type,
        entity_name=entity_name,
        content_type=ContentType.objects.get_for_model(entity.__class__),
        entity_id=entity_id if entity_id is not None else entity.id,
        old_values=old_values,
        new_values=new_values
    )