diff --git a/antifroud/migrations/0003_alter_roomdiscrepancy_booking_id_and_more.py b/antifroud/migrations/0003_alter_roomdiscrepancy_booking_id_and_more.py new file mode 100644 index 00000000..f3b61fed --- /dev/null +++ b/antifroud/migrations/0003_alter_roomdiscrepancy_booking_id_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 5.1.4 on 2025-02-01 06:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('antifroud', '0002_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='roomdiscrepancy', + name='booking_id', + field=models.CharField(max_length=255, null=True, verbose_name='ID бронирования'), + ), + migrations.AlterField( + model_name='roomdiscrepancy', + name='check_in_date_actual', + field=models.DateField(null=True, verbose_name='Фактическая дата заселения'), + ), + migrations.AlterField( + model_name='roomdiscrepancy', + name='check_in_date_expected', + field=models.DateField(null=True, verbose_name='Ожидаемая дата заселения'), + ), + ] diff --git a/antifroud/models.py b/antifroud/models.py index 0f7a861e..e7f9eb38 100644 --- a/antifroud/models.py +++ b/antifroud/models.py @@ -42,7 +42,7 @@ class UserActivityLog(models.Model): return "Нет данных" # Изменение имени столбца - + class Meta: indexes = [ models.Index(fields=["external_id"], name="idx_external_id"), @@ -55,7 +55,7 @@ class UserActivityLog(models.Model): verbose_name_plural = "Логи активности пользователей" def __str__(self): return f"UserActivityLog {self.id}: {self.page_title}" - + class Meta: verbose_name = "Регистрация посетителей" verbose_name_plural = "Регистрации посетителей" @@ -63,7 +63,7 @@ class UserActivityLog(models.Model): def get_location(self): if not self.ip: return "IP-адрес отсутствует" - + try: db_path = f"{settings.GEOIP_PATH}/GeoLite2-City.mmdb" geoip_reader = Reader(db_path) @@ -107,9 +107,9 @@ class ExternalDBSettings(models.Model): class RoomDiscrepancy(models.Model): hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE, verbose_name="Отель") room_number = models.CharField(max_length=50, verbose_name="Номер комнаты") - booking_id = models.CharField(max_length=255, verbose_name="ID бронирования") - check_in_date_expected = models.DateField(verbose_name="Ожидаемая дата заселения") - check_in_date_actual = models.DateField(verbose_name="Фактическая дата заселения") + booking_id = models.CharField(max_length=255, null=True, verbose_name="ID бронирования") + check_in_date_expected = models.DateField(null=True, verbose_name="Ожидаемая дата заселения") + check_in_date_actual = models.DateField(null=True, verbose_name="Фактическая дата заселения") discrepancy_type = models.CharField( max_length=50, choices=[("early", "Раннее заселение"), ("late", "Позднее заселение"), ("missed", "Неявка")], @@ -216,8 +216,8 @@ class SyncLog(models.Model): def __str__(self): return f"Отель: {self.hotel.name} | Получено: {self.recieved_records} | Обработано: {self.processed_records}" - - + + class ViolationLog(models.Model): hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE, verbose_name="Отель") room_number = models.CharField(max_length=50, verbose_name="Номер комнаты", null=True, blank=True)