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

class Instructor(models.Model):
    profile = models.OneToOneField(Profile, on_delete=models.CASCADE)
    experience_years = models.IntegerField(default=0)
    specialization = models.CharField(max_length=100)
    rating = models.DecimalField(max_digits=3, decimal_places=2, default=5.00)
    is_available = models.BooleanField(default=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f"{self.profile.user.get_full_name()} - {self.specialization}"

class InstructorSchedule(models.Model):
    instructor = models.ForeignKey(Instructor, on_delete=models.CASCADE)
    day_of_week = models.IntegerField(choices=[
        (0, 'Понедельник'),
        (1, 'Вторник'),
        (2, 'Среда'),
        (3, 'Четверг'),
        (4, 'Пятница'),
        (5, 'Суббота'),
        (6, 'Воскресенье'),
    ])
    start_time = models.TimeField()
    end_time = models.TimeField()
    is_available = models.BooleanField(default=True)

    class Meta:
        unique_together = ('instructor', 'day_of_week')

    def __str__(self):
        return f"{self.instructor} - {self.get_day_of_week_display()} ({self.start_time}-{self.end_time})" 