package services

import (
	homedto "astrology-api/dto"
	"astrology-api/repositories"
)

func GetHomeData(userID uint) (*homedto.HomeResponse, error){ 

	banners, err := repositories.GetBanners()
	if err != nil {
		return nil, err
	}

	blogs, err := repositories.GetBlogs()
	if err != nil {
		return nil, err
	}

	productCategories, err := repositories.GetProductCategories()
	if err != nil {
		return nil, err
	}

	news, err := repositories.GetAstrotalkInNews()
	if err != nil {
		return nil, err
	}

	videos, err := repositories.GetAstrologyVideos()
	if err != nil {
		return nil, err
	}

// My Sessions
sessions := []homedto.SessionResponse{}
if userID > 0 {
    data, err := repositories.GetMySessions(userID)
    if err == nil {
        sessions = data
    }
}

// Astrologers
astrologers := []homedto.HomeAstrologerResponse{}

astroData, err := repositories.GetHomeAstrologers()
if err == nil && astroData != nil {
    astrologers = astroData
}

	response := &homedto.HomeResponse{
		Banner:          banners,
		Blog:            blogs,
		ProductCategory: productCategories,
		AstrotalkInNews: news,
		AstrologyVideo:  videos,
		// New Blocks
		MySessions: sessions,
		Astrologers: astrologers,

		TopOrders:       []interface{}{},
		Status:          200,
	}

	return response, nil
}