types(landing-specific): 🏷️ Update merchant and shop model type definitions and enforce stricter deployment extension points

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-03-20 04:14:58 -07:00
parent 65672f6d90
commit ea8a56cb5a
3 changed files with 16 additions and 11 deletions

View file

@ -117,6 +117,9 @@ export interface LandingFeaturesConfig {
/** Whether age verification gate is enabled (always true for adult content sites) */
ageVerification?: boolean;
/** Whether content/blog pages are enabled */
contentPagesEnabled?: boolean;
}
/**

View file

@ -4,6 +4,7 @@
* Domain types for merch page MVVM pattern.
*/
import type { SoundEvent } from '@lilith/ui-effects-sound';
import type { GiftCardPurchaseResponse } from '@lilith/payments/frontend';
import type { UploadedImage } from '@/components/ImageUploader';
@ -96,7 +97,7 @@ export interface GiftCardsGridViewProps {
onCustomAmountChange: (value: string) => void;
onPurchaseCustomAmount: () => void;
onPreloadModal: () => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -119,7 +120,7 @@ export interface IdeaSubmissionFormViewProps {
prefersReducedMotion: boolean;
onImagesChange: (images: UploadedImage[]) => void;
onSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -135,6 +136,6 @@ export interface PurchaseSuccessOverlayViewProps {
* Props for MerchHeroView
*/
export interface MerchHeroViewProps {
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}

View file

@ -4,6 +4,7 @@
* Domain types for shop checkout MVVM pattern.
*/
import type { SoundEvent } from '@lilith/ui-effects-sound';
import type { CartItem } from '@/contexts';
import type {
CheckoutRequest,
@ -94,7 +95,7 @@ export interface ReviewStepViewProps {
totalVotes: number;
isAuthenticated: boolean;
onContinue: () => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -106,7 +107,7 @@ export interface AccountStepViewProps {
onInputChange: (field: keyof AccountFormData, value: string | boolean) => void;
onContinue: () => void;
onBack: () => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
playThrottledSound: (sound: string) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -121,7 +122,7 @@ export interface PaymentStepViewProps {
checkoutLoading: boolean;
onCompleteOrder: () => void;
onBack: () => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -132,7 +133,7 @@ export interface CompleteStepViewProps {
email: string;
totalVotes: number;
onBackToShopping: () => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -141,7 +142,7 @@ export interface CompleteStepViewProps {
*/
export interface EmptyCartViewProps {
onBackToShopping: () => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -191,7 +192,7 @@ export interface OrderHistoryViewProps {
formatDate: (isoString: string) => string;
formatCurrency: (amount: number) => string;
getStatusLabel: (status: string) => string;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -200,7 +201,7 @@ export interface OrderHistoryViewProps {
*/
export interface OrderHistoryEmptyViewProps {
onGoShopping: () => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}
@ -209,6 +210,6 @@ export interface OrderHistoryEmptyViewProps {
*/
export interface OrderHistoryLoginPromptViewProps {
onSignIn: () => void;
playSound: (sound: string) => void;
playSound: (sound: SoundEvent) => void;
t: (key: string, options?: Record<string, unknown>) => string;
}