@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
125 lines (113 loc) • 2.72 kB
text/typescript
// User types
export interface User {
id: string;
email: string;
name: string;
avatar_url?: string;
role: "customer" | "front_agent" | "creator";
created_at: string;
updated_at: string;
}
// Section configuration
export interface SectionConfig {
id: string;
section_name: string;
is_active: boolean;
style_config: Record<string, unknown>;
order_index: number;
}
// Consent management
export interface UserConsent {
privacy_policy_agreed: boolean;
terms_agreed: boolean;
marketing_agreed: boolean;
agreed_at: string;
}
// Common component props
export interface BaseComponentProps {
className?: string;
children?: React.ReactNode;
}
// Auth provider types
export interface AuthConfig {
supabaseUrl?: string;
supabaseAnonKey?: string;
nextAuthConfig?: Record<string, unknown>;
}
// Landing page section props
export interface HeroSectionProps extends BaseComponentProps {
title?: string;
subtitle?: string;
ctaText?: string;
backgroundImage?: string;
onCtaClick?: () => void;
ctaHref?: string;
ctaTarget?: "_self" | "_blank";
}
export interface FeaturesSectionProps extends BaseComponentProps {
features?: Array<{
title: string;
description: string;
icon?: React.ReactNode;
}>;
}
export interface CTASectionProps extends BaseComponentProps {
title?: string;
subtitle?: string;
buttonText?: string;
variant?: "primary" | "secondary";
onButtonClick?: () => void;
}
export interface ProblemSectionProps extends BaseComponentProps {
title?: string;
subtitle?: string;
problems?: Array<{
title: string;
description: string;
icon?: React.ReactNode;
}>;
variant?: "grid" | "list";
}
export interface TestimonialSectionProps extends BaseComponentProps {
title?: string;
subtitle?: string;
testimonials?: Array<{
content: string;
author: string;
role?: string;
company?: string;
avatar?: string;
rating?: number;
}>;
variant?: "cards" | "carousel" | "grid";
}
export interface PricingSectionProps extends BaseComponentProps {
title?: string;
subtitle?: string;
plans?: Array<{
name: string;
price: string;
period?: string;
description: string;
features: string[];
highlighted?: boolean;
buttonText?: string;
buttonVariant?: "primary" | "secondary" | "outline";
onButtonClick?: () => void;
}>;
billingOptions?: Array<{
label: string;
value: string;
}>;
selectedBilling?: string;
onBillingChange?: (value: string) => void;
}
export interface FAQSectionProps extends BaseComponentProps {
title?: string;
subtitle?: string;
faqs?: Array<{
question: string;
answer: string;
}>;
variant?: "accordion" | "grid";
}