package dto

import "time"

type UpdateReviewRequest struct {
	Rating   float64 `json:"rating" binding:"required"`
	Review   string  `json:"review" binding:"required"`
	IsPublic bool    `json:"isPublic"`
}

type ReviewReplyRequest struct {
	ReviewID uint   `json:"reviewId" binding:"required"`
	Reply    string `json:"reply" binding:"required"`
}

type ReviewListRequest struct {
	UserID       uint `json:"userId"`
	AstrologerID uint `json:"astrologerId"`
	StartIndex   int  `json:"startIndex"`
	FetchRecord  int  `json:"fetchRecord"`
}

type UserReviewResponse struct {
	ID           uint      `json:"id"`
	UserID       uint      `json:"userId"`
	AstrologerID uint      `json:"astrologerId"`
	Name         string    `json:"name"`
	Profile      string    `json:"profile"`
	ProfileImage string    `json:"profileImage"`
	Rating       float64   `json:"rating"`
	Review       string    `json:"review"`
	Reply        string    `json:"reply"`
	IsPublic     bool      `json:"isPublic"`
	CreatedAt    time.Time `json:"created_at"`
}

type ReplyReviewRequest struct {
	ReviewID uint   `json:"reviewId" binding:"required"`
	Reply    string `json:"reply" binding:"required"`
}

type BlockReviewRequest struct {
	UserReviewID uint `json:"userReviewId" binding:"required"`
	UserID       uint `json:"userId"`
}

type AverageRatingRequest struct {
	AstrologerID uint `json:"astrologerId" binding:"required"`
}
