|
|
|
|
|
|
|
|
|
|
| (function(global) {
|
| 'use strict';
|
|
|
| |
| |
|
|
| function getRandomDateInLastWeek() {
|
| const now = new Date();
|
| const pastDays = Math.floor(Math.random() * 7);
|
| const hours = Math.floor(Math.random() * 24);
|
| const minutes = Math.floor(Math.random() * 60);
|
| now.setDate(now.getDate() - pastDays);
|
| now.setHours(hours, minutes, 0, 0);
|
| return now.toISOString();
|
| }
|
|
|
| |
| |
| |
| |
|
|
| async function injectMockWorkspaceData() {
|
| try {
|
| console.log("[Fritree Mock Utility] Preparing data payload injection...");
|
|
|
|
|
| const mockCategories = [
|
| { id: "cat_realestate", name: "Real Estate Promotions", color: "#1877f2", parentId: null },
|
| { id: "cat_ecom", name: "E-Commerce Deals", color: "#10b981", parentId: null },
|
| { id: "cat_tech", name: "Software & Technology", color: "#8b5cf6", parentId: null },
|
| { id: "cat_clearance", name: "Seasonal Clearance", color: "#f59e0b", parentId: null }
|
| ];
|
|
|
|
|
| const mockAssets = [
|
| {
|
| uuid: "cl_asset_001",
|
| title: "Modern Apartment Showcase",
|
| textMain: "Stunning 2-bedroom luxury apartments available now in the downtown district! {High ceilings|Floor-to-ceiling windows} with premium finishes and {amazing views|spacious balconies}. Contact us today to schedule an exclusive tour! #RealEstate #LuxuryLiving",
|
| textSec: "Luxury downtown living awaits you. Schedule a viewing today!",
|
| status: "Active",
|
| categories: ["cat_realestate"],
|
| keywords: ["apartments", "luxury", "rent"],
|
| priority: 80,
|
| expireDate: "",
|
| cooldownMinutes: 15,
|
| notes: "High conversion rate on urban development groups",
|
| media: [],
|
| creationDate: getRandomDateInLastWeek(),
|
| modifiedDate: new Date().toISOString(),
|
| stats: { usage: 12, success: 10, fail: 1, pending: 1, realInteractions: 45 },
|
| scores: { quality: 85, performance: 83 },
|
| lastPublished: getRandomDateInLastWeek()
|
| },
|
| {
|
| uuid: "cl_asset_002",
|
| title: "Flash Sale 50% Off Promo",
|
| textMain: "⚡ FLASH SALE! Get 50% off on all items across our store for the next {24 hours|12 hours} only! Use code {FLASH50|HALFPRICE} at checkout. {Don't miss out!|Order now before stocks run out!}",
|
| textSec: "50% off sitewide. Limited time only!",
|
| status: "Active",
|
| categories: ["cat_ecom", "cat_clearance"],
|
| keywords: ["sale", "promo", "discount"],
|
| priority: 95,
|
| expireDate: "",
|
| cooldownMinutes: 30,
|
| notes: "High-priority flash promotion",
|
| media: [],
|
| creationDate: getRandomDateInLastWeek(),
|
| modifiedDate: new Date().toISOString(),
|
| stats: { usage: 24, success: 20, fail: 2, pending: 2, realInteractions: 112 },
|
| scores: { quality: 90, performance: 83 },
|
| lastPublished: getRandomDateInLastWeek()
|
| },
|
| {
|
| uuid: "cl_asset_003",
|
| title: "SaaS Automation Platform launch",
|
| textMain: "Scale up your workflow with our advanced {no-code automation engine|all-in-one productivity suite}. Free 14-day trial, {no credit card required|instant setup}. Discover why thousands of businesses trust us.",
|
| textSec: "Automate your daily operational workflows easily.",
|
| status: "Active",
|
| categories: ["cat_tech"],
|
| keywords: ["saas", "software", "productivity"],
|
| priority: 60,
|
| expireDate: "",
|
| cooldownMinutes: 10,
|
| notes: "Excellent for professional B2B communities",
|
| media: [],
|
| creationDate: getRandomDateInLastWeek(),
|
| modifiedDate: new Date().toISOString(),
|
| stats: { usage: 8, success: 6, fail: 1, pending: 1, realInteractions: 14 },
|
| scores: { quality: 75, performance: 75 },
|
| lastPublished: getRandomDateInLastWeek()
|
| }
|
| ];
|
|
|
|
|
| const mockHistory = [];
|
| const platforms = ['facebook', 'whatsapp'];
|
|
|
| for (let i = 1; i <= 15; i++) {
|
| const platform = platforms[Math.floor(Math.random() * platforms.length)];
|
| const isFb = platform === 'facebook';
|
| const total = Math.floor(Math.random() * 25) + 5;
|
| const success = Math.round(total * (0.7 + Math.random() * 0.3));
|
| const failed = total - success;
|
|
|
| const campaignDate = new Date();
|
| campaignDate.setDate(campaignDate.getDate() - Math.floor(Math.random() * 7));
|
|
|
| const logs = [];
|
| for (let j = 0; j < total; j++) {
|
| logs.push({
|
| groupId: isFb ? `1234567890${j}` : `+1555000000${j}`,
|
| status: j < success ? 'success' : 'failed',
|
| error: j < success ? null : 'Group post submission restricted',
|
| postUrl: j < success ? `https://www.facebook.com/groups/posts/${Date.now() + j}/` : null
|
| });
|
| }
|
|
|
| const mockHistoryRecord = {
|
| id: 'hist_mock_' + i + '_' + Date.now(),
|
| name: isFb ? `Historical Campaign Wave #${i}` : 'Bulk Product Announcement',
|
| date: campaignDate.toISOString(),
|
| platform: platform,
|
| type: Math.random() > 0.5 ? 'Manual' : 'Scheduled',
|
| status: 'Completed',
|
| isLibraryMode: Math.random() > 0.5,
|
| config: { text: "Sample marketing campaign test payload.", images: [] },
|
| stats: { total: total, success: success, pending: 0, failed: failed },
|
| logs: logs
|
| };
|
|
|
| mockHistory.unshift(mockHistoryRecord);
|
| }
|
|
|
|
|
| await FritreeStorage.set('local_content_library', mockAssets);
|
| await FritreeStorage.set('local_content_categories', mockCategories);
|
| await FritreeStorage.set('campaignHistoryData', mockHistory);
|
|
|
| if (typeof window.addLog === 'function') {
|
| window.addLog("Content Library and campaign history successfully seeded with metrics data.", "success");
|
| }
|
|
|
| alert("Diagnostics Workspace Environment Mock Data Generated successfully! Reloading to sync widgets...");
|
| window.location.reload();
|
|
|
| } catch (e) {
|
| console.error("Failed to generate and commit mock data.", e);
|
| }
|
| }
|
|
|
|
|
| global.FritreeDeveloperTools = {
|
| seedMockData: injectMockWorkspaceData
|
| };
|
|
|
| })(typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : this); |