# vendor/models.py
from django.db import models
from django.utils import timezone
from core.models import BaseTimeStampModel, User


class VendorCategory(BaseTimeStampModel):
    title = models.CharField(max_length=50)
 
    def __str__(self):
        return self.title
    
    class Meta:
        db_table = 'vendor_category'


class VendorCategoryServices(models.Model):
    title = models.CharField(max_length=50)
    vendor_category = models.ForeignKey(VendorCategory, on_delete=models.CASCADE, related_name='services')

    def __str__(self):
        return f"{self.title} - {self.vendor_category.title}"
    
    class Meta:
        db_table = 'vendor_category_services'


class Vendor(BaseTimeStampModel):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='vendor_profile')
    contact_detail = models.JSONField(null=True, blank=True)
    citizenship = models.CharField(max_length=255, null=True, blank=True)
    nid = models.CharField(max_length=255, null=True, blank=True)
    company_registration_document = models.CharField(max_length=255, null=True, blank=True)
    pan_vat_document = models.CharField(max_length=255, null=True, blank=True)
    pan_number = models.CharField(max_length=50, null=True, blank=True)
    vat_number = models.CharField(max_length=50, null=True, blank=True)
    ceo_detail = models.JSONField(null=True, blank=True)
    vendor_category = models.ForeignKey(VendorCategory, on_delete=models.CASCADE, null=True, blank=True, related_name='vendors')

    def __str__(self):
        return f"Vendor {self.user_id} - {self.company_registration_document}"
    
    class Meta:
        db_table = 'vendor'
