// API response types
export interface ApiError {
	code: string;
	message: string;
	violations?: Array<{
		propertyPath: string;
		message: string;
	}>;
}

export interface PaginatedResponse<T> {
	data: T[];
	meta: {
		total: number;
		page: number;
		itemsPerPage: number;
		lastPage: number;
	};
}

export interface HydraCollection<T> {
	'@context': string;
	'@id': string;
	'@type': string;
	'hydra:totalItems': number;
	'hydra:member': T[];
	'hydra:view'?: {
		'@id': string;
		'@type': string;
		'hydra:first'?: string;
		'hydra:last'?: string;
		'hydra:next'?: string;
		'hydra:previous'?: string;
	};
}
