fixes but still nto fixed

This commit is contained in:
IGNY8 VPS (Salman)
2026-01-15 04:13:54 +00:00
parent e02ba76451
commit 75785aa642
12 changed files with 1037 additions and 80 deletions

View File

@@ -751,11 +751,70 @@ export interface PlannerKeywordFilterOptions {
countries: FilterOption[];
statuses: FilterOption[];
clusters: FilterOption[];
difficulties: FilterOption[];
}
export async function fetchPlannerKeywordFilterOptions(siteId?: number): Promise<PlannerKeywordFilterOptions> {
// Filter options request with current filter state for cascading
export interface KeywordFilterOptionsRequest {
site_id?: number;
status?: string;
country?: string;
difficulty_min?: number;
difficulty_max?: number;
cluster_id?: string;
}
export async function fetchPlannerKeywordFilterOptions(
siteId?: number,
filters?: KeywordFilterOptionsRequest
): Promise<PlannerKeywordFilterOptions> {
const params = new URLSearchParams();
if (siteId) params.append('site_id', siteId.toString());
if (filters?.status) params.append('status', filters.status);
if (filters?.country) params.append('country', filters.country);
if (filters?.difficulty_min !== undefined) params.append('difficulty_min', filters.difficulty_min.toString());
if (filters?.difficulty_max !== undefined) params.append('difficulty_max', filters.difficulty_max.toString());
if (filters?.cluster_id) params.append('cluster_id', filters.cluster_id);
const queryString = params.toString();
return fetchAPI(`/v1/planner/keywords/filter_options/${queryString ? `?${queryString}` : ''}`);
}
// Clusters filter options
export interface PlannerClusterFilterOptions {
statuses: FilterOption[];
}
export async function fetchPlannerClusterFilterOptions(siteId?: number): Promise<PlannerClusterFilterOptions> {
const queryParams = siteId ? `?site_id=${siteId}` : '';
return fetchAPI(`/v1/planner/keywords/filter_options/${queryParams}`);
return fetchAPI(`/v1/planner/clusters/filter_options/${queryParams}`);
}
// Ideas filter options
export interface PlannerIdeasFilterOptions {
statuses: FilterOption[];
content_types: FilterOption[];
content_structures: FilterOption[];
clusters: FilterOption[];
}
export async function fetchPlannerIdeasFilterOptions(siteId?: number): Promise<PlannerIdeasFilterOptions> {
const queryParams = siteId ? `?site_id=${siteId}` : '';
return fetchAPI(`/v1/planner/ideas/filter_options/${queryParams}`);
}
// Content filter options (Writer module)
export interface WriterContentFilterOptions {
statuses: FilterOption[];
site_statuses: FilterOption[];
content_types: FilterOption[];
content_structures: FilterOption[];
sources: FilterOption[];
}
export async function fetchWriterContentFilterOptions(siteId?: number): Promise<WriterContentFilterOptions> {
const queryParams = siteId ? `?site_id=${siteId}` : '';
return fetchAPI(`/v1/writer/content/filter_options/${queryParams}`);
}
// Clusters-specific API functions