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;
  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>;
}

export interface AppConfig {
  baseUrl: string;
  authBaseUrl: string;
  resources: ResourceConfig[];
  profile?: {
    resource: string;
    extraFields?: Record<string, any>;
  };
}
