44 lines
845 B
TypeScript
44 lines
845 B
TypeScript
export type FieldType =
|
|
| 'string'
|
|
| 'number'
|
|
| 'boolean'
|
|
| 'date'
|
|
| 'datetime'
|
|
| 'markdown'
|
|
| 'enum'
|
|
| 'image'
|
|
| 'object'
|
|
| 'array';
|
|
|
|
export interface ResourceField {
|
|
type: FieldType;
|
|
label: string;
|
|
required?: boolean;
|
|
options?: string[];
|
|
readOnly?: boolean;
|
|
schema?: Record<string, ResourceField>;
|
|
displayField?: string | string[];
|
|
formatter?: (value: any) => string;
|
|
relation?: string; // Name of the target resource
|
|
}
|
|
|
|
export interface ResourceConfig {
|
|
name: string;
|
|
label: string;
|
|
pluralLabel: string;
|
|
endpoint: string;
|
|
primaryKey: string;
|
|
fields: Record<string, ResourceField>;
|
|
pagination?: boolean;
|
|
}
|
|
|
|
export interface AppConfig {
|
|
baseUrl: string;
|
|
authBaseUrl: string;
|
|
resources: ResourceConfig[];
|
|
profile?: {
|
|
resource: string;
|
|
extraFields?: Record<string, any>;
|
|
};
|
|
}
|