package FikoYTCevapCls

import FikoYTHata "server/sistem/fikoyt_ctx/fikoyt_hata"

// HTTP Durum Kodlarına Karşılık Gelen Mesajlar
var durumMesajlari = map[int]string{
	55:  "FikoYT Deneme Hatası",
	200: "OK",
	201: "Created",
	400: "Bad Request",
	401: "Unauthorized",
	403: "Forbidden",
	404: "Not Found",
	500: "Internal Server Error",
	502: "Bad Gateway",
	503: "Service Unavailable",
}

// Status koduna uygun mesaj döndürür, bilinmeyen kodlar için varsayılan mesaj
func DurumMesajiAl(code *int) string {
	if code == nil {
		return "Durum Bilinmiyor"
	} else if msg, exists := durumMesajlari[*code]; exists {
		return msg
	}
	return "Durum Bilinmiyor"
}

// Custom Response Struct
type FikoYTCevap struct {
	Durum FikoYTDurum `json:"durum,omitempty"`
	Sonuc interface{} `json:"sonuc,omitempty"`
}

func (f *FikoYTCevap) AyarlaDurumKodu(durum int) {
	f.Durum.Kodu = &durum
}

//
type FikoYTDurum struct {
	Kodu       *int                       `json:"kodu,omitempty"`
	Tamamlandi bool                       `json:"tamamlandi,omitempty"`
	Mesaj      string                     `json:"mesaj,omitempty"`
	Hata       bool                       `json:"hata,omitempty"`
	Hatalar    FikoYTHata.ArrayFikoYTHata `json:"hatalar,omitempty"`
}
