package services_astrologer

import (
	dto "astrology-api/dto_astrologer/activity"
)

//////////////////////////////////////////////////////////////
// Activity Service Interface
//////////////////////////////////////////////////////////////

type ActivityService interface {

	//----------------------------------------------------------
	// WAIT LIST
	//----------------------------------------------------------

	// astrologerUserID is the token's user_id (users.id); the queue itself is
	// keyed on astrologers.id and the service maps between them.

	AddWaiting(
		astrologerUserID uint,
		request dto.AddWaitingRequest,
	) error

	RemoveWaiting(
		astrologerUserID uint,
		queueID uint,
	) error

	GetWaitingList(
		astrologerUserID uint,
		request dto.PaginationRequest,
	) (*dto.WaitingListResponse, error)

	//----------------------------------------------------------
	// CHAT
	//----------------------------------------------------------

	GetChatHistory(
		astrologerID uint,
		request dto.PaginationRequest,
	) (*dto.ChatHistoryResponse, error)

	GetChatDetail(
		astrologerID uint,
		chatID uint,
	) (*dto.ChatDetailResponse, error)

	//----------------------------------------------------------
	// CALL
	//----------------------------------------------------------

	GetCallHistory(
		astrologerID uint,
		request dto.PaginationRequest,
	) (*dto.CallHistoryResponse, error)

	GetCallDetail(
		astrologerID uint,
		callID uint,
	) (*dto.CallDetailResponse, error)

	//----------------------------------------------------------
	// ASTROMALL
	//----------------------------------------------------------

	GetAstromallOrders(
		astrologerID uint,
		request dto.PaginationRequest,
	) (*dto.AstromallOrderResponse, error)

	GetAstromallOrderDetail(
		astrologerID uint,
		orderID uint,
	) (*dto.AstromallOrderItem, error)
}
