8 Phases refactor

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-03 16:08:02 +00:00
parent 30bbcb08a1
commit 39df00e5ae
55 changed files with 2120 additions and 5527 deletions

View File

@@ -2432,121 +2432,9 @@ export interface DeploymentReadiness {
};
}
export async function fetchDeploymentReadiness(blueprintId: number): Promise<DeploymentReadiness> {
return fetchAPI(`/v1/publisher/blueprints/${blueprintId}/readiness/`);
}
// Legacy: Site Builder API removed
// SiteBlueprint, PageBlueprint, and related functions deprecated
export async function createSiteBlueprint(data: Partial<SiteBlueprint>): Promise<SiteBlueprint> {
return fetchAPI('/v1/site-builder/blueprints/', {
method: 'POST',
body: JSON.stringify(data),
});
}
export async function updateSiteBlueprint(id: number, data: Partial<SiteBlueprint>): Promise<SiteBlueprint> {
return fetchAPI(`/v1/site-builder/blueprints/${id}/`, {
method: 'PATCH',
body: JSON.stringify(data),
});
}
// Cluster attachment endpoints
export async function attachClustersToBlueprint(
blueprintId: number,
clusterIds: number[],
role: 'hub' | 'supporting' | 'attribute' = 'hub'
): Promise<{ attached_count: number; clusters: Array<{ id: number; name: string; role: string; link_id: number }> }> {
return fetchAPI(`/v1/site-builder/blueprints/${blueprintId}/clusters/attach/`, {
method: 'POST',
body: JSON.stringify({ cluster_ids: clusterIds, role }),
});
}
export async function detachClustersFromBlueprint(
blueprintId: number,
clusterIds?: number[],
role?: 'hub' | 'supporting' | 'attribute'
): Promise<{ detached_count: number }> {
return fetchAPI(`/v1/site-builder/blueprints/${blueprintId}/clusters/detach/`, {
method: 'POST',
body: JSON.stringify({ cluster_ids: clusterIds, role }),
});
}
// Taxonomy endpoints
export interface Taxonomy {
id: number;
name: string;
slug: string;
taxonomy_type: 'blog_category' | 'blog_tag' | 'product_category' | 'product_tag' | 'product_attribute' | 'service_category';
description?: string;
cluster_ids: number[];
external_reference?: string;
created_at: string;
updated_at: string;
}
export interface TaxonomyCreateData {
name: string;
slug: string;
taxonomy_type: 'blog_category' | 'blog_tag' | 'product_category' | 'product_tag' | 'product_attribute' | 'service_category';
description?: string;
cluster_ids?: number[];
external_reference?: string;
}
export interface TaxonomyImportRecord {
name: string;
slug: string;
taxonomy_type?: string;
description?: string;
external_reference?: string;
}
export async function fetchBlueprintsTaxonomies(blueprintId: number): Promise<{ count: number; taxonomies: Taxonomy[] }> {
return fetchAPI(`/v1/site-builder/blueprints/${blueprintId}/taxonomies/`);
}
export async function createBlueprintTaxonomy(
blueprintId: number,
data: TaxonomyCreateData
): Promise<Taxonomy> {
return fetchAPI(`/v1/site-builder/blueprints/${blueprintId}/taxonomies/`, {
method: 'POST',
body: JSON.stringify(data),
});
}
export async function importBlueprintsTaxonomies(
blueprintId: number,
records: TaxonomyImportRecord[],
defaultType: string = 'blog_category'
): Promise<{ imported_count: number; taxonomies: Taxonomy[] }> {
return fetchAPI(`/v1/site-builder/blueprints/${blueprintId}/taxonomies/import/`, {
method: 'POST',
body: JSON.stringify({ records, default_type: defaultType }),
});
}
// Page blueprint endpoints
export async function updatePageBlueprint(
pageId: number,
data: Partial<PageBlueprint>
): Promise<PageBlueprint> {
return fetchAPI(`/v1/site-builder/pages/${pageId}/`, {
method: 'PATCH',
body: JSON.stringify(data),
});
}
export async function regeneratePageBlueprint(
pageId: number
): Promise<{ success: boolean; task_id?: string }> {
return fetchAPI(`/v1/site-builder/pages/${pageId}/regenerate/`, {
method: 'POST',
});
}
export async function generatePageContent(
pageId: number,