- добавлена миграция для user_recommendation_weights и breakdown-полей recommendation_events - рекомендации теперь используют пользовательские score/vector веса - feedback ACCEPTED/REJECTED обновляет score-веса пользователя по последней рекомендации - добавлен API для чтения и ручного обновления весов рекомендаций - добавлен onboarding endpoint для начальной калибровки пользователя - добавлены стили рекомендаций: balanced, quality first, mood first, discovery, similar to favorites - onboarding сохраняет предпочтения, лайки/дизлайки, библиотеку, просмотренные фильмы и стартовые веса - добавлены метрика обновления весов и расширенные smoke/unit тесты
25 lines
605 B
Kotlin
25 lines
605 B
Kotlin
package com.project.movienight.domain.model
|
|
|
|
import java.time.LocalDateTime
|
|
import java.util.UUID
|
|
|
|
data class RecommendationEvent(
|
|
val id: UUID,
|
|
val userId: UUID,
|
|
val filmId: UUID,
|
|
val eventType: RecommendationEventType,
|
|
val score: Double? = null,
|
|
val relevanceScore: Double? = null,
|
|
val qualityScore: Double? = null,
|
|
val contextScore: Double? = null,
|
|
val noveltyScore: Double? = null,
|
|
val diversityScore: Double? = null,
|
|
val createdAt: LocalDateTime = LocalDateTime.now(),
|
|
)
|
|
|
|
enum class RecommendationEventType {
|
|
RECOMMENDED,
|
|
ACCEPTED,
|
|
REJECTED,
|
|
}
|