79 lines
2.7 KiB
Python
79 lines
2.7 KiB
Python
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)
|
||
|