we0-cms-supabase-api
Version:
A CMS API package for Next.js applications with Supabase and dynamic table management
70 lines (69 loc) • 1.5 kB
TypeScript
export interface SchemaField {
name: string;
type: string;
required?: boolean;
unique?: boolean;
maxLength?: number;
defaultValue?: any;
comment?: string;
}
export interface JsonSchema {
fields: SchemaField[];
}
export interface CmsModelAttributes {
id: number;
name: string;
table_name: string;
json_schema: JsonSchema;
created_at: Date;
updated_at: Date;
}
export interface CmsModelCreationAttributes {
name: string;
table_name: string;
json_schema: JsonSchema;
}
export interface ApiResponse<T = any> {
success: boolean;
message?: string;
data?: T;
error?: string;
}
export interface PaginatedResponse<T = any> {
data: T[];
total: number;
page: number;
limit: number;
totalPages: number;
}
export interface SupabaseConfig {
url: string;
key: string;
schema?: string;
}
export interface DatabaseConfig extends SupabaseConfig {
}
export interface TableDataOptions {
page?: number;
limit?: number;
search?: string;
where?: string;
orderBy?: string;
ascending?: boolean;
}
export interface SupabaseFilter {
column: string;
operator: 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'in' | 'is';
value: any;
}
export interface FieldTypeMapping {
string: 'text';
text: 'text';
integer: 'int4';
float: 'float8';
boolean: 'bool';
date: 'date';
datetime: 'timestamptz';
json: 'jsonb';
email: 'text';
}