2023-05-27 11:13:41 +03:00
|
|
|
from django.db import models
|
|
|
|
from passfinder.users.models import User
|
|
|
|
from passfinder.events.models import Event, Hotel, Restaurant
|
2023-05-27 22:32:52 +03:00
|
|
|
from django.contrib.postgres.fields import ArrayField
|
2023-05-27 11:13:41 +03:00
|
|
|
|
|
|
|
|
|
|
|
class UserPreferences(models.Model):
|
|
|
|
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
|
|
|
|
|
|
|
preffered_plays = models.ManyToManyField(Event, related_name='preffered_user_play')
|
|
|
|
unpreffered_plays = models.ManyToManyField(Event, related_name='unpreffered_users_play')
|
|
|
|
|
|
|
|
preffered_movies = models.ManyToManyField(Event, related_name='preffered_user_movie')
|
|
|
|
unpreffered_movies = models.ManyToManyField(Event, related_name='unpreffered_user_movie')
|
|
|
|
|
|
|
|
preferred_concerts = models.ManyToManyField(Event, related_name='preffered_users_concert')
|
|
|
|
unpreferred_concerts = models.ManyToManyField(Event, related_name='unpreffered_users_concert')
|
|
|
|
|
|
|
|
prefferred_attractions = models.ManyToManyField(Event, related_name='preffered_users_attractions')
|
|
|
|
unprefferred_attractions = models.ManyToManyField(Event, related_name='unpreffered_users_attractions')
|
|
|
|
|
|
|
|
prefferred_museums = models.ManyToManyField(Event, related_name='preffered_users_museums')
|
|
|
|
unprefferred_museums = models.ManyToManyField(Event, related_name='unpreffered_users_museums')
|
|
|
|
|
2023-05-27 22:32:52 +03:00
|
|
|
preferred_categories = ArrayField(base_field=models.CharField(max_length=100), null=True, blank=True)
|
|
|
|
preferred_stars = ArrayField(base_field=models.IntegerField(), null=True, blank=True)
|
|
|
|
|
2023-05-27 11:13:41 +03:00
|
|
|
|
|
|
|
|
|
|
|
class NearestEvent(models.Model):
|
|
|
|
event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='nearest_model_rel')
|
|
|
|
nearest = models.ManyToManyField(Event, related_name='nearest_model_rev_rel')
|
|
|
|
|
|
|
|
"""
|
|
|
|
from passfinder.recomendations.service.service import generate_tour
|
|
|
|
|
|
|
|
from passfinder.users.models import User
|
|
|
|
|
|
|
|
from passfinder.events.models import City
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
start_date = datetime(year=2023, month=6, day=10)
|
|
|
|
end_date = datetime(year=2023, month=6, day=13)
|
|
|
|
|
|
|
|
c = City.objects.get(title='Таганрог')
|
|
|
|
|
|
|
|
u = User.objects.all()[0]
|
|
|
|
|
|
|
|
generate_tour(u, c, start_date, end_date)
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
class NearestHotel(models.Model):
|
|
|
|
hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE, related_name='nearest_hotel_rel')
|
|
|
|
nearest_events = models.ManyToManyField(Event, related_name='nearest_hotel_rev_rel')
|
|
|
|
|
|
|
|
|
|
|
|
class NearestRestaurantToEvent(models.Model):
|
|
|
|
event = models.ForeignKey(Event, on_delete=models.CASCADE)
|
|
|
|
restaurants = models.ManyToManyField(Restaurant)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NearestRestaurantToHotel(models.Model):
|
|
|
|
hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE)
|
|
|
|
restaurants = models.ManyToManyField(Restaurant)
|
|
|
|
|
|
|
|
|
|
|
|
class NearestEventToRestaurant(models.Model):
|
|
|
|
restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE)
|
|
|
|
events = models.ManyToManyField(Event)
|