47 lines
2.4 KiB
TypeScript
47 lines
2.4 KiB
TypeScript
|
|
import type { FeedbackRating } from '../db'
|
||
|
|
|
||
|
|
export const BRAND_COLOR = '#0070AD'
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Kanonische Reihenfolge der Rating-Skala (nicht ändern — DB-Werte sind stabil).
|
||
|
|
* `color` = Badge/Display-State (inaktiv)
|
||
|
|
* `active` = ausgewählter Button-State
|
||
|
|
*/
|
||
|
|
export const RATING_OPTIONS: ReadonlyArray<{
|
||
|
|
value: FeedbackRating
|
||
|
|
short: string
|
||
|
|
label: string
|
||
|
|
color: string
|
||
|
|
active: string
|
||
|
|
}> = [
|
||
|
|
{ value: 'na', short: 'N/A', label: 'N/A (0)', color: 'bg-gray-100 text-gray-500 border-gray-300', active: 'bg-gray-400 text-white border-gray-400' },
|
||
|
|
{ value: 'not_client_ready', short: 'Not', label: 'Not (1)', color: 'bg-red-100 text-red-700 border-red-300', active: 'bg-red-500 text-white border-red-500' },
|
||
|
|
{ value: 'partially_client_ready', short: 'Partially', label: 'Partially (2)', color: 'bg-orange-100 text-orange-700 border-orange-300', active: 'bg-orange-500 text-white border-orange-500' },
|
||
|
|
{ value: 'nearly_client_ready', short: 'Nearly', label: 'Nearly (3)', color: 'bg-green-100 text-green-600 border-green-300', active: 'bg-green-400 text-white border-green-400' },
|
||
|
|
{ value: 'client_ready', short: 'Fully', label: 'Fully (4)', color: 'bg-green-100 text-green-800 border-green-400', active: 'bg-green-700 text-white border-green-700' },
|
||
|
|
]
|
||
|
|
|
||
|
|
/** Farb-Schemata für Teilnehmer-Badges (Index = Reihenfolge im Assignment). */
|
||
|
|
export const INST_COLORS = [
|
||
|
|
{ bg: 'bg-blue-50', border: 'border-blue-300', tag: 'bg-blue-500', text: 'text-blue-700' },
|
||
|
|
{ bg: 'bg-purple-50', border: 'border-purple-300', tag: 'bg-purple-500', text: 'text-purple-700' },
|
||
|
|
{ bg: 'bg-emerald-50', border: 'border-emerald-300', tag: 'bg-emerald-500', text: 'text-emerald-700' },
|
||
|
|
{ bg: 'bg-orange-50', border: 'border-orange-300', tag: 'bg-orange-500', text: 'text-orange-700' },
|
||
|
|
] as const
|
||
|
|
|
||
|
|
export const AI_CONFIG = {
|
||
|
|
localStorageKeyApiKey: 'ai_api_key',
|
||
|
|
localStorageKeyModel: 'ai_model',
|
||
|
|
defaultModel: 'openai/gpt-4o-mini',
|
||
|
|
openRouterBaseUrl: 'https://openrouter.ai/api/v1',
|
||
|
|
} as const
|
||
|
|
|
||
|
|
/** Numerische Gewichte für Rating-Aggregation. N/A wird aus Berechnungen ausgeschlossen. */
|
||
|
|
export const RATING_NUM_MAP: Record<FeedbackRating, number> = {
|
||
|
|
na: 0,
|
||
|
|
not_client_ready: 1,
|
||
|
|
partially_client_ready: 2,
|
||
|
|
nearly_client_ready: 3,
|
||
|
|
client_ready: 4,
|
||
|
|
}
|