from django.db import models
from phonenumber_field.modelfields import PhoneNumberField
from django.utils.translation import gettext_lazy as _


class Room(models.Model):
    ROOM_CATEGORIES = (
        ('ΔΙΚ', 'Δίκλινο'),
        ('ΤΡΙ', 'Τρίκλινο'),
        ('ΜΕΖ', 'Μεζονέτα'),
    )
    number = models.IntegerField()
    category = models.CharField(max_length=3, choices=ROOM_CATEGORIES)
    beds = models.IntegerField()
    capacity = models.IntegerField()
    price = models.FloatField()

    def __str__(self):
        return f'{self.number}-{self.category} με {self.beds} κρεβάτια για {self.capacity} άτομα.'

class Booking(models.Model):
    ROOM_CATEGORIES = (
        ('ΔΙΚ', _('Δίκλινο')),
        ('ΤΡΙ', _('Τρίκλινο')),
        ('ΜΕΖ', _('Μεζονέτα')),
    )
    ACCEPT_OPTION = (
        ('NΑΙ', 'ΝΑΙ'),
        ('ΟΧΙ', 'ΟΧΙ'),
        ('ΝΕΟ', 'ΝΕΟ'),
    )
    COUNTRY = (
        ('AUT', 'Αυστρία'),
        ('BEL', 'Βέλγιο'),
        ('BGR', 'Βουλγαρία'),
        ('CHN', 'Κίνα'),
        ('CYP', 'Κύπρος'),
        ('CZE', 'Τσεχία'),
        ('DEU', 'Γερμανία'),
        ('DNK', 'Δανία'),
        ('ESP', 'Ισπανία'),
        ('EST', 'Εστονία'),
        ('FIN', 'Φιλανδία'),
        ('FRA', 'Γαλλία'),
        ('GBR', 'Αγγλία'),
        ('GRC', 'Ελλάδα'),
        ('HRV', 'Κροατία'),
        ('HUN', 'Ουγγαρία'),
        ('IRL', 'Ιρλανδία'),
        ('ITA', 'Ιταλία'),
        ('LTU', 'Λιθουανία'),
        ('LUX', 'Λουξεμβούργο'),
        ('LVA', 'Λετονία'),
        ('MLT', 'Μάλτα'),
        ('NLD', 'Ολλανδία'),
        ('POL', 'Πολωνία'),
        ('PRT', 'Πορτογαλία'),
        ('ROU', 'Ρουμανία'),
        ('RUS', 'Ρωσία'),
        ('SVK', 'Σλοβακία'),
        ('SVN', 'Σλοβενία'),
        ('SWE', 'Σουηδία'),
        ('TUR', 'Τουρκία'),
    )
    name = models.CharField(max_length=50)
    surname = models.CharField(max_length=50)
    telephone = PhoneNumberField()
    email = models.EmailField(blank=True, max_length=50)
    category = models.CharField(max_length=3, choices=ROOM_CATEGORIES, default=None)
    room = models.ForeignKey(Room, on_delete=models.CASCADE)
    check_in = models.DateField()
    check_out = models.DateField()
    final_price = models.FloatField(blank=True)
    country = models.CharField(max_length=3, choices=COUNTRY, blank=True)
    info = models.TextField(blank=True)
    accept = models.CharField(max_length=3, choices=ACCEPT_OPTION, default=None)
    created_at = models.DateTimeField(auto_now_add=True)

