from django.db import models

#Rol
class user_rol(models.Model): 
    #id = models.IntegerField(primary_key=True)
    role_name = models.CharField(max_length=50, null=True, blank=True) 
    role_description = models.CharField(max_length=250, null=True, blank=True)
    
    def __str__(self):
        return f"Rol {self.role_name} (ID: {self.id})"
#Piv User - Rol    
class user_piv_user_rol(models.Model): 
    #id = models.IntegerField(primary_key=True)
    userid = models.IntegerField()
    roleid = models.IntegerField()
    
    def __str__(self):
        return f"Piv_Rol UsuarioId: {self.user_id} - Rol_Id: {self.role_id}"
     
#Category to group permissions by type
class user_permission_Category(models.Model): 
    #id = models.IntegerField(primary_key=True)
    category_name = models.CharField(max_length=50, null=True, blank=True)
    category_description = models.CharField(max_length=250, null=True, blank=True)
    
    def __str__(self):
        return f"Permission Category {self.role_name} (ID: {self.id})"
    
#Sub_Category to group permissions by type of Category
class user_permission_sub_Category(models.Model): 
    #id = models.IntegerField(primary_key=True)
    subcategory_name = models.CharField(max_length=50, null=True, blank=True)
    subcategory_description = models.CharField(max_length=250, null=True, blank=True)
    subcategory_categoryid = models.PositiveSmallIntegerField()
    def __str__(self):
        return f"Permission Sub_Category {self.role_name} (ID: {self.id})"
    
#Piv Rol - permissions
class user_piv_rol_permissions(models.Model): 
    #id = models.IntegerField(primary_key=True)
    roleid = models.IntegerField()
    permissionsid = models.IntegerField()
    
    def __str__(self):
        return f"Piv_Rol Roleid: {self.roleid} - Permissionsid: {self.permissionsid}"

#permission
class user_permissions(models.Model): 
    #id = models.IntegerField(primary_key=True)
    permission_name = models.CharField(max_length=50, null=True, blank=True)
    permission_description = models.CharField(max_length=250, null=True, blank=True)
    permission_subcategoryid = models.PositiveSmallIntegerField()
    codename = models.CharField(max_length=100, null=False)
    order_show_fronend = models.PositiveSmallIntegerField()
    is_active = models.BooleanField(default=True)
    type_permissions = models.SmallIntegerField(blank=False, null=False)
    ## 0 -> elementos de menu 
    ## 1 -> botones unicos
    ## 2 -> divs 
    ## 3 -> variable que toma valor disabled para todo elemento que la posea  

    def __str__(self):
        return f"permission: {self.role_name} (ID: {self.id})"

class user_customuser(models.Model): 
    #id = models.IntegerField(primary_key=True)
    userid = models.IntegerField(blank=False, null=False)
    profile_img = models.CharField(max_length=150, blank=True, null=True) 
    observations = models.CharField(max_length=150, blank=True, null=True)
    
    def __str__(self):
        return f"customer: {self.userid} (ID: {self.id})"
    



     