package dto_astrologer

type DashboardResponse struct {
	ID               uint    `json:"id"`
	UserID           uint    `json:"user_id"`
	Name             string  `json:"name"`
	ProfileImage     string  `json:"profile_image"`
	CurrentStatus    string  `json:"current_status"`
	IsOnline         bool    `json:"is_online"`
	IsChatOnline     bool    `json:"is_chat_online"`
	IsCallOnline     bool    `json:"is_call_online"`
	QuickDND         bool    `json:"quick_dnd"`
	WalletBalance    float64 `json:"wallet_balance"`
	TodayEarning     float64 `json:"today_earning"`
	TodayCalls       int     `json:"today_calls"`
	TodayChats       int     `json:"today_chats"`
	TodayCallMinutes int     `json:"today_call_minutes"`
	TodayChatMinutes int     `json:"today_chat_minutes"`
	OnlineMinutes    int     `json:"online_minutes"`
	AverageRating    float64 `json:"average_rating"`
	AcceptanceRate   float64 `json:"acceptance_rate"`
	ResponseRate     float64 `json:"response_rate"`

	// How many customers are ringing right now — the badge on the Request
	// Queue option. The queue itself is GET /astrologer/consultation/requests.
	//
	// Requests already past the ring timeout are not counted, so the badge
	// never offers something that can no longer be accepted.
	PendingRequestCount int `json:"pending_request_count"`

	// Consultation rates as held on the astrologers row (chatRate,
	// audioCallRate, videoCallRate), per minute.
	ChatRate      int `json:"chat_rate"`
	CallRate      int `json:"call_rate"`
	VideoCallRate int `json:"video_call_rate"`

	// Break time. IsOnBreak is true while the clock is inside one of today's
	// astrologer_rest_time windows, and CurrentStatus then reads "Break Time".
	// The two times are the window's own from_time/to_time (HH:MM:SS), empty
	// when no break is running.
	IsOnBreak     bool   `json:"is_on_break"`
	RestTimeStart string `json:"rest_time_start"`
	RestTimeEnd   string `json:"rest_time_end"`
	RestTitle     string `json:"rest_title,omitempty"`
}
