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


class Profile(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()

    def __str__(self):
        return self.name

class UserExtension(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    gender = models.CharField(max_length=10, blank=True, help_text="*SEXO") 
    date_of_birth = models.DateField(help_text="*DATA DE NASC.")
    USER_TYPE_CHOICES = [
        ('PRODUCER', 'Produtor'),
        ('NORMAL', 'Normal (Sponsor)'),
    ]
    user_type = models.CharField(max_length=20, choices=USER_TYPE_CHOICES, default='NORMAL')
    profile = models.ForeignKey(Profile, on_delete=models.CASCADE, null=True, blank=True)

    def __str__(self):
        return f"{self.user.username} ({self.user_type})"

class Donkey(models.Model):
    name = models.CharField(max_length=100)
    race = models.CharField(max_length=100)
    location = models.CharField(max_length=255)
    date_of_birth = models.DateField(null=True, blank=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    cover_image = models.ImageField(upload_to='donkey_covers/')

    def __str__(self):
        return self.name

class Sponsorship(models.Model):
    type = models.CharField(max_length=50)
    start_date = models.DateField()
    amount = models.DecimalField(max_digits=10, decimal_places=2)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    donkey = models.ForeignKey(Donkey, on_delete=models.CASCADE)

class Post(models.Model):
    donkey = models.ForeignKey(Donkey, on_delete=models.CASCADE)
    date = models.DateTimeField(auto_now_add=True)
    description = models.TextField()
    image_url = models.ImageField(upload_to='posts/')