backend/passfinder/recomendations/models.py

98 lines
2.9 KiB
Python
Raw Normal View History

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)
2023-05-28 00:11:44 +03:00
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
)
2023-05-27 11:13:41 +03:00
class NearestEvent(models.Model):
2023-05-28 00:11:44 +03:00
event = models.ForeignKey(
Event, on_delete=models.CASCADE, related_name="nearest_model_rel"
)
nearest = models.ManyToManyField(Event, related_name="nearest_model_rev_rel")
2023-05-27 11:13:41 +03:00
"""
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)
"""
2023-05-28 00:11:44 +03:00
2023-05-27 11:13:41 +03:00
class NearestHotel(models.Model):
2023-05-28 00:11:44 +03:00
hotel = models.ForeignKey(
Hotel, on_delete=models.CASCADE, related_name="nearest_hotel_rel"
)
nearest_events = models.ManyToManyField(Event, related_name="nearest_hotel_rev_rel")
2023-05-27 11:13:41 +03:00
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)
2023-05-28 00:11:44 +03:00
events = models.ManyToManyField(Event)