from django.db import models from passfinder.users.models import User from passfinder.events.models import Event, Hotel, Restaurant from django.contrib.postgres.fields import ArrayField 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') 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) 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)