/* ===========
   INTERFACES
   =========== */

export interface Field {
	name: string;
	label: string;
	type: string;
	sql_type: string;
	selected: boolean;
	order: number;
	group: string;
	filters?: Rule[];
	settings?: any;
}

export interface FieldSettings {
	column_name: string;
	position: number;
	prefix: string;
	suffix: string;
	visibility: string;
}

export interface Entity {
	total: number;
	selected: number;
	name: string;
	title: string;
	singular: string;
	fields: Field[];
	isMain: boolean;
	meta?: Field[];
	subentities?: Entity[];
	has_meta?: boolean;
}

export interface Rule {
	condition: string;
	value: string | number;
}