49 lines
988 B
TypeScript
49 lines
988 B
TypeScript
export type ToolName = 'logframe' | 'funder-rewriter' | 'smart-indicators' | 'theory-of-change';
|
|
|
|
export interface Session {
|
|
id: string;
|
|
tool: ToolName;
|
|
email: string | null;
|
|
input: Record<string, string>;
|
|
output: string | null;
|
|
is_paid: boolean;
|
|
payment_id: string | null;
|
|
improvements_used: number;
|
|
created_at: string;
|
|
updated_at: string;
|
|
}
|
|
|
|
export interface Lead {
|
|
id: number;
|
|
email: string;
|
|
org_name: string | null;
|
|
tool: string;
|
|
created_at: string;
|
|
}
|
|
|
|
export interface AdminConfig {
|
|
price_amount: string;
|
|
price_currency: string;
|
|
free_tier_enabled: string;
|
|
max_improvements: string;
|
|
openai_model: string;
|
|
lemonsqueezy_variant_id: string;
|
|
}
|
|
|
|
export interface ToolConfig {
|
|
slug: ToolName;
|
|
name: string;
|
|
description: string;
|
|
icon: string;
|
|
fields: FormField[];
|
|
}
|
|
|
|
export interface FormField {
|
|
name: string;
|
|
label: string;
|
|
type: 'text' | 'textarea' | 'select';
|
|
placeholder?: string;
|
|
options?: string[];
|
|
required?: boolean;
|
|
}
|