from django.db import models

from integrations.models import Client


class ClientRevenueTarget(models.Model):
    client = models.ForeignKey(Client, on_delete=models.CASCADE, related_name="revenue_targets")
    branch_id = models.CharField(max_length=50)
    company_id = models.IntegerField()
    target = models.IntegerField(null=True, blank=True)
    breakeven = models.IntegerField(null=True, blank=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        db_table = "client_revenue_targets"
        unique_together = (("client", "branch_id", "company_id"),)


class ClientGPThreshold(models.Model):
    client = models.ForeignKey(Client, on_delete=models.CASCADE, related_name="gp_thresholds")
    department_type = models.CharField(max_length=50)
    green_min = models.FloatField()
    yellow_min = models.FloatField()
    yellow_max = models.FloatField()
    red_max = models.FloatField()
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        db_table = "client_gp_thresholds"
        unique_together = (("client", "department_type"),)


class ClientKPITargetOverride(models.Model):
    client = models.ForeignKey(Client, on_delete=models.CASCADE, related_name="kpi_target_overrides")
    branch = models.CharField(max_length=80)
    department = models.CharField(max_length=80)
    metric_key = models.CharField(max_length=80)
    target = models.FloatField(null=True, blank=True)
    weight = models.FloatField(null=True, blank=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        db_table = "client_kpi_target_overrides"
        unique_together = (("client", "branch", "department", "metric_key"),)
