     1	/**
     2	 * @module knex-constants
     3	 * @description Shared constants for the REST API Knex plugin
     4	 *
     5	 * This module contains all the magic strings and shared constants used
     6	 * throughout the plugin to avoid repetition and improve maintainability.
     7	 */
     8	
     9	// Internal property names - using unique names to avoid collisions with user data
    10	export const RELATIONSHIPS_KEY = '__$jsonrestapi_relationships$__'
    11	export const RELATIONSHIP_METADATA_KEY = '__$jsonrestapi_metadata$__'
    12	export const ROW_NUMBER_KEY = '__$jsonrestapi_rn$__'
    13	export const COMPUTED_DEPENDENCIES_KEY = '__$jsonrestapi_computed_deps$__'
    14	
    15	// Default query limits
    16	export const DEFAULT_QUERY_LIMIT = 20
    17	export const DEFAULT_MAX_QUERY_LIMIT = 100
    18	export const DEFAULT_MAX_INCLUDE_LIMIT = 1000
    19	export const DEFAULT_INCLUDE_DEPTH_LIMIT = 3
    20	
    21	// Schema handling helpers
    22	export const getSchemaStructure = (schema) => schema?.structure || schema || {}
    23	export const getIdProperty = (schemaInfo) => schemaInfo?.idProperty || 'id'
    24	
    25	// Default values
    26	export const DEFAULT_PAGE_SIZE = 20
    27	export const DEFAULT_MAX_PAGE_SIZE = 100
    28	export const DEFAULT_PAGE_NUMBER = 1
    29	
    30	// Database clients
    31	export const DB_CLIENTS = {
    32	  POSTGRES: 'pg',
    33	  MYSQL: 'mysql',
    34	  MYSQL2: 'mysql2',
    35	  SQLITE: 'sqlite3',
    36	  MSSQL: 'mssql'
    37	}
    38	
    39	// Error subtypes
    40	export const ERROR_SUBTYPES = {
    41	  NOT_FOUND: 'not_found',
    42	  VALIDATION: 'validation',
    43	  PERMISSION: 'permission',
    44	  CONFLICT: 'conflict'
    45	}
