package FikoYTIstek

import (
	"server/sistem/FikoYTDosya"
	FikoYTMap "server/sistem/fikoyt_map"
	"strings"

	"github.com/gofiber/fiber/v3"
)

type FikoYTIstek struct {
	Json      FikoYTMap.FikoYTMap
	Dosyalar  []FikoYTDosya.FikoYTDosya
	Ip        string
	FapiKomut string
}

func Yeni(c fiber.Ctx) *FikoYTIstek {
	files, _ := c.Locals("files").([]FikoYTDosya.FikoYTDosya)
	json, _ := c.Locals("json").(FikoYTMap.FikoYTMap)
	/**/
	ip := c.Get("X-Forwarded-For")
	if ip == "" {
		ip = c.Get("X-Real-IP")
	}
	if ip == "" {
		ip = c.IP()
		ipParts := strings.Split(ip, ":")
		if len(ipParts) > 0 {
			ip = ipParts[0]
		}
	} else {
		ips := strings.Split(ip, ",")
		ip = strings.TrimSpace(ips[0])
	}
	// IP adresini context'e ekle.
	c.Locals("ip_adresi", ip)
	/**/
	fapiKomut := ""

	if strings.HasPrefix(c.Path(), "/fapi") {
		fapiKomut = strings.TrimPrefix(c.Path(), "/fapi/")
	}

	/**/
	return &FikoYTIstek{
		Json:      json,
		Dosyalar:  files,
		Ip:        ip,
		FapiKomut: fapiKomut,
	}

}
