Files
starr-philproperties/src/data/advertisement.data.js
T
kennethobsequio fbef7cb6e6 ready to test
Testing

Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
2026-06-22 10:07:20 +08:00

39 lines
2.3 KiB
JavaScript

// data/advertisements.data.js
import { Megaphone, Image, BellRing, PanelRight } from "lucide-react";
// ─── Types ──────────────────────────────────────────────────────────────────
// Drives: filter dropdown options, type badge label/icon on each card,
// and which fields the Add/Edit form shows (hero needs headline/description/ctas,
// banner/popup/sidebar are closer to image-only).
export const ADVERTISEMENT_TYPES = [
{ value: "hero", label: "Hero", icon: Megaphone, description: "Large featured banner with headline, description, and CTAs" },
{ value: "banner", label: "Banner", icon: Image, description: "Simple image banner" },
{ value: "popup", label: "Popup", icon: BellRing, description: "Modal-style popup shown on page load" },
{ value: "sidebar", label: "Sidebar", icon: PanelRight, description: "Compact image placed in a sidebar slot" },
];
export const ADVERTISEMENT_TYPE_MAP = Object.fromEntries(
ADVERTISEMENT_TYPES.map((t) => [t.value, t])
);
// Types that show the rich content fields (headline, description, CTAs) in the form
export const RICH_CONTENT_TYPES = ["hero"];
// ─── Statuses ───────────────────────────────────────────────────────────────
// Drives: filter dropdown options, status badge color/label on each card.
export const ADVERTISEMENT_STATUSES = [
{ value: "draft", label: "Draft", badgeClass: "bg-muted text-muted-foreground" },
{ value: "active", label: "Active", badgeClass: "bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-400" },
{ value: "scheduled", label: "Scheduled", badgeClass: "bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-400" },
{ value: "expired", label: "Expired", badgeClass: "bg-muted text-muted-foreground" },
{ value: "archived", label: "Archived", badgeClass: "bg-muted text-muted-foreground" },
];
export const ADVERTISEMENT_STATUS_MAP = Object.fromEntries(
ADVERTISEMENT_STATUSES.map((s) => [s.value, s])
);
// Max number of CTAs allowed per advertisement (matches backend normalizeCtas slice(0,2))
export const MAX_CTAS = 2;