from django.db import models # Create your models here. from apps.user.models import User, Region, TypeId from hotelApi.tricks import UploadToPathAndRename, compress class Hotel(models.Model): admin = models.ManyToManyField(User, blank=True, related_name='administrator') code = models.CharField(max_length=60) name = models.CharField(max_length=60) description = models.CharField(max_length=200, blank=True, null=True) phone = models.CharField(max_length=50, blank=True, null=True) email = models.CharField(max_length=70, blank=True, null=True) logo = models.ImageField(blank=True, null=True, upload_to=UploadToPathAndRename('logos/')) direction = models.CharField(max_length=100) reference = models.CharField(max_length=100, null=True, blank=True) barrio = models.CharField(max_length=50, null=True, blank=True) latitude = models.FloatField(null=True, blank=True) longitude = models.FloatField(null=True, blank=True) region = models.ForeignKey(Region, null=True, blank=True, on_delete=models.PROTECT) active = models.BooleanField(blank=True, null=True) available = models.BooleanField(default=True) terms = models.BooleanField(blank=True, null=True) open_time = models.CharField(max_length=100, null=True, blank=True) close_time = models.CharField(max_length=100, null=True, blank=True) class TypeRoom(models.Model): name = models.CharField(max_length=100) acronym = models.CharField(max_length=50) active = models.BooleanField(blank=True, null=True) class Room(models.Model): name = models.CharField(max_length=150) description = models.TextField(null=True, blank=True) active = models.BooleanField(default=True) price = models.FloatField(null=True, blank=True) discount = models.FloatField(null=True, blank=True) hotel = models.ForeignKey(Hotel, null=False, blank=False, on_delete=models.PROTECT) photo = models.ImageField(upload_to=UploadToPathAndRename('room/'), blank=True, null=True) type_room = models.ForeignKey(TypeRoom, null=True, blank=True, on_delete=models.PROTECT) __original_photo = None def __init__(self, *args, **kwargs): super(Room, self).__init__(*args, **kwargs) self.__original_photo = self.photo def save(self, *args, **kwargs): if self.id is None or self.photo != self.__original_photo: new_image = compress(self.photo) self.photo = new_image super(Room, self).save(*args, **kwargs)