from __future__ import annotations

from django.db import models
from django.conf import settings


class GroupRelation(models.Model):
    """3-party group relation row (owner + two persons)."""
    REL_CHOICES = (
        ('sanhe', '三合'),
        ('sanxing', '三刑'),
    )

    owner_user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='group_relations')
    person1 = models.ForeignKey('bazi.Person', on_delete=models.CASCADE, related_name='as_person1_in_groups')
    person2 = models.ForeignKey('bazi.Person', on_delete=models.CASCADE, related_name='as_person2_in_groups')
    relation_type = models.CharField(max_length=16, choices=REL_CHOICES)
    by = models.JSONField(null=True, blank=True, help_text='Compact refs for forming relation')
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        unique_together = (
            ('owner_user', 'relation_type', 'person1', 'person2'),
        )



