using UniVerse.Domain.Enums;

namespace UniVerse.Application.DTOs.Reviews;

public record ReviewDto(
    int Id,
    int LectureId,
    string? LectureTitle,
    int UserId,
    string? UserName,
    ReviewRating Rating,
    string? Text,
    ReviewLlmStatus LlmStatus,
    ReviewSentiment? Sentiment,
    double? QualityScore,
    bool? IsInformative,
    string[]? LlmTags,
    string? LlmRawOutput,
    DateTime CreatedAt
);

public record CreateReviewRequest(int LectureId, ReviewRating Rating, string? Text);

public record UpdateReviewRequest(ReviewRating Rating, string? Text);

public record ReviewFilterRequest(
    ReviewLlmStatus? LlmStatus,
    int Page = 1,
    int PageSize = 20
);

public record ReviewPromptDto(string Prompt, DateTime? UpdatedAt);

public record UpdateReviewPromptRequest(string Prompt);
