69 lines
1.6 KiB
TypeScript
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'
|
|
};
|