we0-cms-api
Version:
A CMS API package for Next.js applications with dynamic table management
51 lines (50 loc) • 1.14 kB
TypeScript
import { Optional } from "sequelize";
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 extends Optional<CmsModelAttributes, "id" | "created_at" | "updated_at"> {
}
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 DatabaseConfig {
host: string;
port: number;
database: string;
username: string;
password: string;
logging?: boolean | ((sql: string) => void);
}
export interface TableDataOptions {
page?: number;
limit?: number;
search?: string;
where?: string;
}