from django.db import models
from django.utils import timezone
import uuid

class DailyWorkClaim(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    profile = models.ForeignKey('profiles.Profile', on_delete=models.CASCADE, related_name='daily_claims')
    claimed_at = models.DateTimeField(auto_now_add=True)
    claim_date = models.DateField(default=timezone.now)  # আলাদা DateField
    reward_amount = models.DecimalField(max_digits=12, decimal_places=4, default=0.0001)
    
    class Meta:
        ordering = ['-claimed_at']
        # ❌ Don't use __date in constraints
        # ✅ Use the actual field name
        unique_together = ['profile', 'claim_date']  # This works with SQLite
        
    def save(self, *args, **kwargs):
        # Auto-set claim_date from claimed_at if not set
        if not self.claim_date and self.claimed_at:
            self.claim_date = self.claimed_at.date()
        elif not self.claim_date:
            self.claim_date = timezone.now().date()
        super().save(*args, **kwargs)
        
    def __str__(self):
        return f"{self.profile.user.email} - {self.claim_date}"