client and some admin new

Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
2026-08-05 04:32:43 +08:00
parent 8922f7f2f4
commit 0c7f5ccd0f
33 changed files with 937 additions and 770 deletions
+5 -3
View File
@@ -33,9 +33,11 @@ const Advertisement = sequelize.define("Advertisement", {
},
// ─── Content ──────────────────────────────────────────────────────────────
// "image" = image only, "content" = badge/headline/description/CTAs alongside
// the image — an explicit admin choice made in the creation wizard, decoupled
// from placement/format.
// Every ad is now created/edited as "content" (badge/headline/description/
// image/link all mandatory) — applyAdvertisementFields on the backend fixes
// this server-side rather than accepting it from the client. "image" is
// legacy-only, left on rows created before the Image Only / Text with Image
// toggle was removed, until they're next edited.
content_mode: { type: DataTypes.ENUM("image", "content"), allowNull: false, defaultValue: "image", label: "Content Mode", order: 3.5 },
// Up to 2 outline-badge chips shown alongside the headline — see MAX_BADGE_LABELS.
badge_labels: { type: DataTypes.JSONB, allowNull: false, defaultValue: [], label: "Badge Labels", order: 4 },