added watermark settings tab on the branding page and added more package details to the billing page, added a new guest notifications page

This commit is contained in:
Codex Agent
2025-12-17 16:39:25 +01:00
parent efe697f155
commit 5f3e7ae8c8
25 changed files with 2062 additions and 202 deletions

View File

@@ -80,6 +80,9 @@ export type TenantEvent = {
settings?: Record<string, unknown> & {
engagement_mode?: 'tasks' | 'photo_only';
guest_upload_visibility?: 'review' | 'immediate';
watermark?: WatermarkSettings;
watermark_allowed?: boolean | null;
watermark_serve_originals?: boolean | null;
};
package?: {
id: number | string | null;
@@ -87,6 +90,8 @@ export type TenantEvent = {
price: number | null;
purchased_at: string | null;
expires_at: string | null;
branding_allowed?: boolean | null;
watermark_allowed?: boolean | null;
} | null;
limits?: EventLimitSummary | null;
addons?: EventAddonSummary[];
@@ -215,6 +220,27 @@ export type TenantFont = {
variants: TenantFontVariant[];
};
export type WatermarkSettings = {
mode?: 'base' | 'custom' | 'off';
asset?: string | null;
asset_data_url?: string | null;
position?:
| 'top-left'
| 'top-center'
| 'top-right'
| 'middle-left'
| 'center'
| 'middle-right'
| 'bottom-left'
| 'bottom-center'
| 'bottom-right';
opacity?: number;
scale?: number;
padding?: number;
offset_x?: number;
offset_y?: number;
};
export type EventAddonSummary = {
id: number;
key: string;
@@ -380,6 +406,9 @@ export type TenantPackageSummary = {
purchased_at: string | null;
expires_at: string | null;
package_limits: Record<string, unknown> | null;
branding_allowed?: boolean | null;
watermark_allowed?: boolean | null;
features?: string[] | null;
};
export type NotificationPreferences = Record<string, boolean>;
@@ -653,7 +682,10 @@ type EventSavePayload = {
status?: 'draft' | 'published' | 'archived';
is_active?: boolean;
package_id?: number;
settings?: Record<string, unknown>;
settings?: Record<string, unknown> & {
watermark?: WatermarkSettings;
watermark_serve_originals?: boolean | null;
};
};
type JsonOrThrowOptions = {
@@ -916,6 +948,9 @@ function normalizeTenantPackage(pkg: JsonValue): TenantPackageSummary {
purchased_at: pkg.purchased_at ?? pkg.created_at ?? null,
expires_at: pkg.expires_at ?? pkg.valid_until ?? null,
package_limits: pkg.package_limits ?? packageData.limits ?? null,
branding_allowed: pkg.branding_allowed ?? packageData.branding_allowed ?? null,
watermark_allowed: pkg.watermark_allowed ?? packageData.watermark_allowed ?? null,
features: pkg.features ?? packageData.features ?? null,
};
}