import json
from django.db import models

class ErrorLog(models.Model):
    user_id = models.BigIntegerField(blank=True, null=True)
    descr = models.TextField(null=True, blank=True)
    url = models.CharField(max_length=255, blank=True)
    trace = models.TextField(null=True, blank=True)
    data = models.JSONField(null=True, blank=True)
    request_id = models.CharField(max_length=255, null=True, blank=True, db_index=True)
    correlation_id = models.CharField(max_length=255, null=True, blank=True, db_index=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        db_table = 'error_log'

    @staticmethod
    def insert_log(
        user_id=None,
        descr=None,
        trace=None,
        data=None,
        url=None,
        request_id=None,
        correlation_id=None,
    ):
        log = ErrorLog.objects.create(
            user_id=user_id,
            descr=descr,
            trace=trace, #if want store as json, assume be4 call to this function already make it json format
            data=data,
            url=url,
            request_id=request_id,
            correlation_id=correlation_id,
        )
        return log.id
