Files
towercontrol/lib/config.ts
2025-09-17 13:56:42 +02:00

69 lines
1.6 KiB
TypeScript

/**
* Configuration de l'application TowerControl (version standalone)
*/
export interface AppConfig {
app: {
name: string;
version: string;
};
ui: {
theme: 'light' | 'dark' | 'system';
itemsPerPage: number;
};
features: {
enableDragAndDrop: boolean;
enableNotifications: boolean;
autoSave: boolean;
};
integrations: {
jira: {
enabled: boolean;
baseUrl?: string;
email?: string;
apiToken?: string;
};
};
}
// Configuration par défaut
const defaultConfig: AppConfig = {
app: {
name: 'TowerControl',
version: '2.0.0'
},
ui: {
theme: (process.env.NEXT_PUBLIC_THEME as 'light' | 'dark' | 'system') || 'system',
itemsPerPage: parseInt(process.env.NEXT_PUBLIC_ITEMS_PER_PAGE || '50')
},
features: {
enableDragAndDrop: process.env.NEXT_PUBLIC_ENABLE_DRAG_DROP !== 'false',
enableNotifications: process.env.NEXT_PUBLIC_ENABLE_NOTIFICATIONS === 'true',
autoSave: process.env.NEXT_PUBLIC_AUTO_SAVE !== 'false'
},
integrations: {
jira: {
enabled: Boolean(process.env.JIRA_BASE_URL && process.env.JIRA_EMAIL && process.env.JIRA_API_TOKEN),
baseUrl: process.env.JIRA_BASE_URL,
email: process.env.JIRA_EMAIL,
apiToken: process.env.JIRA_API_TOKEN
}
}
};
/**
* Récupère la configuration de l'application
*/
export function getConfig(): AppConfig {
return defaultConfig;
}
/**
* Configuration pour le développement/debug
*/
export const DEBUG_CONFIG = {
isDevelopment: process.env.NODE_ENV === 'development',
verboseLogging: process.env.VERBOSE_LOGGING === 'true',
enableDevTools: process.env.NODE_ENV === 'development'
};