Тут на самом деле не очень хорошая практика передавать через query параметры данные для создания. Я бы рекомендовал все же передавать данные в теле (body) POST запроса.
Здесь пытаюсь понять заложенную логику. Т.е. тут в операторах сравнения Вы сравниваете передал ли пользователь оценку 10 - пишете в БД лайк, поставил 0 - категорический дизлайк ). А разве нельзя поставить фильму допустим оценку 5 или 8 ? Как считаете, может хранить рейтинги фильмов ? А лайки - дизлайки просто считать запросом ? Тогда средняя оценка фильма обретет смысл - у вас будут значения рейтинга по мнению пользователя.
Тут аналогично, советую оперировать с Body как то так:
Тут аналогично, советую оперировать с Body как то так:
film_id: str = Body(description=....), user_id: str = Body(description=....), text: str = Body(min_length=1, max_length=7000), rating: Rating = Body(description="Like: 10, dislike: 0"),