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)