feat(admin): Discounts and Website Settings sections
- /admin/discounts: list + create discount codes (kind, value, max uses, expiry) via /v1/discounts (backend has no edit/delete API yet) - /admin/settings: key/value site settings with upsert + secret flag. The value column is jsonb, so values are JSON-encoded on save / decoded for display - nav links + fa/en labels Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
"use client";
|
||||
|
||||
import { AdminResource } from "@/components/admin/AdminResource";
|
||||
import { discountsConfig } from "@/components/admin/admin-resources";
|
||||
|
||||
export default function Page() {
|
||||
return <AdminResource config={discountsConfig} />;
|
||||
}
|
||||
@@ -26,6 +26,8 @@ export default async function AdminLayout({
|
||||
{ href: "/admin/ai", label: t("aiContent") },
|
||||
{ href: "/admin/users", label: t("users") },
|
||||
{ href: "/admin/plans", label: t("plans") },
|
||||
{ href: "/admin/discounts", label: t("discounts") },
|
||||
{ href: "/admin/settings", label: t("siteSettings") },
|
||||
{ href: "/admin/nodes", label: t("nodes") },
|
||||
{ href: "/admin/renders", label: t("renderQueue") },
|
||||
];
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
"use client";
|
||||
|
||||
import { WebsiteSettingsAdmin } from "@/components/admin/WebsiteSettingsAdmin";
|
||||
|
||||
export default function Page() {
|
||||
return <WebsiteSettingsAdmin />;
|
||||
}
|
||||
Reference in New Issue
Block a user