import { WordPressClient } from '../../frontend/src/lib/wordpress/WordPressClient.js'; // Note: In a real monorepo we'd share the client code, but for now I'll adapt or re-import. // Actually, backend needs its own HTTP client logic usually, or we pass the WP Client from frontend? // No, backend must run the ignition. // I will create a backend-specific simple deployer. export class WordPressDeployer { private domain: string; private auth: string; // Basic base64 info constructor(domain: string, auth: string) { this.domain = domain; this.auth = auth; } async backupContent(postId: number, currentContent: string): Promise { // Post to meta 'legacy_content_reference' // First get current metas or just update // We'll try updating the post meta directly if API supports it, or use a custom endpoint/plugin. // Standard WP REST API allows updating meta if registered. // Fallback: Store in Directus 'legacy_backups' table? // User spec says: "Store legacy... meta_key = 'legacy_content_reference'" try { await this.updatePost(postId, { meta: { legacy_content_reference: currentContent } }); return true; } catch (e) { console.error("Backup Failed", e); return false; } } async updatePost(postId: number, data: any): Promise { const url = `${this.domain}/wp-json/wp/v2/posts/${postId}`; const res = await fetch(url, { method: 'POST', headers: { 'Authorization': `Basic ${this.auth}`, 'Content-Type': 'application/json' }, body: JSON.stringify(data) }); if (!res.ok) throw new Error(`WP Update Failed: ${res.statusText}`); return await res.json(); } // Future: Image upload logic }