package importer

type CurseForgeManifest struct {
	Minecraft struct {
		Version    string `json:"version"`
		ModLoaders []struct {
			ID      string `json:"id"`
			Primary bool   `json:"primary"`
		} `json:"modLoaders"`
	} `json:"minecraft"`
	ManifestType    string `json:"manifestType"`
	ManifestVersion int    `json:"manifestVersion"`
	Name            string `json:"name"`
	Version         string `json:"version"`
	Author          string `json:"author"`
	Files           []struct {
		ProjectID int  `json:"projectID"`
		FileID    int  `json:"fileID"`
		Required  bool `json:"required"`
	} `json:"files"`
	Overrides string `json:"overrides"`
}

// CurseForgeSearchResponse - ответ от эндпоинта поиска
type CurseForgeSearchResponse struct {
	Data []struct {
		ID   int    `json:"id"`
		Slug string `json:"slug"`
	} `json:"data"`
}

// CurseForgeFilesResponse - ответ от эндпоинта получения файлов проекта
type CurseForgeFilesResponse struct {
	Data       []CurseForgeFileData `json:"data"`
	Pagination struct {
		TotalCount int `json:"totalCount"`
	} `json:"pagination"`
}

// CurseForgeFileData - данные о файле
type CurseForgeFileData struct {
	ID           int      `json:"id"`
	DisplayName  string   `json:"displayName"`
	FileName     string   `json:"fileName"`
	DownloadURL  string   `json:"downloadUrl"`
	FileDate     string   `json:"fileDate"`
	GameVersions []string `json:"gameVersions"`
}

// CurseForgeFile представляет полную информацию о файле с API.
type CurseForgeFile struct {
	Data struct {
		ID          int    `json:"id"`
		FileName    string `json:"fileName"`
		DownloadURL string `json:"downloadUrl"`
		// ... можно добавить другие поля, если понадобятся
	} `json:"data"`
}
