from django.db import models
from django.contrib.auth.models import AbstractUser

from sub_categories.models import Sub_Categories

# Create your models here.
class Users(AbstractUser):
    user_type_data = ((1, 'Admin'), (2, 'User'))
    user_type = models.IntegerField(default =2, choices=user_type_data)
    email = models.CharField(max_length=255, blank=True, null=True)
    name = models.CharField(max_length=255, blank=True, null=True)
    address = models.TextField(blank=True, null=True)
    password = models.CharField(max_length=255, blank=True, null=True)
    mobile = models.CharField(max_length=20, blank=True, null = True)
    profile_pic = models.ImageField(upload_to="users", blank=True, null = True)
    fcm_token = models.CharField(max_length=500, blank=True, null=True)


class ContractorProfile(models.Model):

    user = models.OneToOneField(Users, on_delete=models.CASCADE, related_name="contractor_profile")
    # contractor can have multiple skills/sub-categories
    sub_categories = models.ManyToManyField(
        Sub_Categories,
        related_name="contractors",
        blank=True
    )

    bio = models.TextField(
        blank=True,
        null=True
    )

    hourly_rate = models.DecimalField(
        max_digits=10,
        decimal_places=2,
        default=0
    )

    experience_years = models.IntegerField(
        default=0
    )

    location = models.CharField(
        max_length=255,
        blank=True,
        null=True
    )

    is_verified = models.BooleanField(
        default=False
    )

    created_at = models.DateTimeField(
        auto_now_add=True
    )

    updated_at = models.DateTimeField(
        auto_now=True
    )



class ContractorWork(models.Model):

    profile = models.ForeignKey(
        ContractorProfile,
        on_delete=models.CASCADE,
        related_name="works"
    )

    file = models.FileField(
        upload_to="contractor/works/",
        blank=True,
        null=True
    )

    description = models.TextField(
        blank=True,
        null=True
    )

    owner_contact = models.CharField(
        max_length=20,
        blank=True,
        null=True
    )

    owner_email = models.EmailField(
        blank=True,
        null=True
    )