"""
Models stored in database alias `cluster` (livekitvoicebot_cluster).

Use numeric `business_id` to align with `businesses.business_id` in the master DB;
Django does not enforce cross-database foreign keys.
"""

from django.db import models


class BusinessIdAgent(models.Model):
    business_id = models.BigIntegerField(db_index=True)
    name = models.CharField(max_length=255, blank=True)
    config = models.JSONField(default=dict, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        db_table = "business_id_agents"


class BusinessIdBot(models.Model):
    business_id = models.BigIntegerField(db_index=True)
    name = models.CharField(max_length=255, blank=True)
    config = models.JSONField(default=dict, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        db_table = "business_id_bots"


class BusinessIdCallHistory(models.Model):
    business_id = models.BigIntegerField(db_index=True)
    user_id = models.BigIntegerField(null=True, blank=True, db_index=True)
    call_started_at = models.DateTimeField(null=True, blank=True)
    call_ended_at = models.DateTimeField(null=True, blank=True)
    duration_seconds = models.PositiveIntegerField(null=True, blank=True)
    status = models.CharField(max_length=50, blank=True)
    metadata = models.JSONField(default=dict, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        db_table = "business_id_callhistory"
