from django.db import models
from django.contrib.auth.models import User

class ImplementerDetails(models.Model):
    name = models.CharField(max_length=100)
    display_name = models.CharField(max_length=100)
    reference_id = models.CharField(max_length=100)
    status = models.CharField(
        max_length=50,
        choices=[
            ("Active", "Active"),
            ("Inactive", "Inactive"),
        ],
        default="Active"
    )
    contact_person = models.CharField(max_length=100)
    country_code = models.CharField(max_length=5)
    contact_number = models.CharField(max_length=100)
    email_details = models.JSONField(
        default=list,
        blank=True,
        null=True
    )
    implementor_jd_serial_number = models.CharField(max_length=200, default=1)
    address1 = models.CharField(max_length=255, blank=True, null=True)
    address2 = models.CharField(max_length=255, blank=True, null=True)
    address2 = models.CharField(max_length=255, blank=True, null=True)
    country = models.CharField(max_length=255, blank=True, null=True)
    state = models.CharField(max_length=255, blank=True, null=True)
    pincode = models.CharField(max_length=255, blank=True, null=True)
    fb_userid = models.CharField(max_length=255, blank=True, null=True)
    linkedin_userid = models.CharField(max_length=255, blank=True, null=True)
    x_userid = models.CharField(max_length=255, blank=True, null=True)
    currencies = models.CharField(max_length=255, blank=True, null=True)

class TblUserOrganizationAuth(models.Model):
    organization_auth_id = models.AutoField(primary_key=True)
    organization = models.ForeignKey(
        ImplementerDetails, models.DO_NOTHING, blank=True, null=True
    )
    user = models.ForeignKey(
        User,
        models.DO_NOTHING,
        related_name="auth_user_organization",
        blank=True,
        null=True,
    )
    # mobile_number = models.CharField(max_length=20, blank=True, null=True)

class UserProfile(models.Model):
    user = models.OneToOneField(
        User,
        on_delete=models.CASCADE,
        related_name="profile"
    )
    profile_image = models.ImageField(
        upload_to="images/user/profile/",
        blank=True,
        null=True
    )
    display_column_preference = models.JSONField(
        null=True,
        blank=True
    )

    class Meta:
        db_table = "user_profile"
