{"version":3,"sources":["../src/types/performance.ts"],"sourcesContent":["/**\n * Performance tag types based on percentage ranges\n */\nexport enum PerformanceTag {\n  DESTAQUE_DA_TURMA = 'DESTAQUE_DA_TURMA',\n  ACIMA_DA_MEDIA = 'ACIMA_DA_MEDIA',\n  ABAIXO_DA_MEDIA = 'ABAIXO_DA_MEDIA',\n  PONTO_DE_ATENCAO = 'PONTO_DE_ATENCAO',\n}\n\n/**\n * Performance tag configuration\n */\nexport interface PerformanceTagConfig {\n  label: string;\n  variant: 'success' | 'info' | 'warning' | 'error';\n  minPercentage: number;\n  maxPercentage: number;\n}\n\n/**\n * Time intervals accepted by backend API\n * Used as query parameter in analytics endpoints\n */\nexport type TimeInterval = '1week' | '15days' | '1month' | '6months' | '1year';\n\n/**\n * Performance tag configurations by type\n * 90-100%: Destaque da turma (success)\n * 70-89%: Acima da média (info)\n * 40-69%: Abaixo da média (warning)\n * 0-39%: Ponto de atenção (error)\n */\nexport const PERFORMANCE_TAG_CONFIG: Record<\n  PerformanceTag,\n  PerformanceTagConfig\n> = {\n  DESTAQUE_DA_TURMA: {\n    label: 'Destaque da turma',\n    variant: 'success',\n    minPercentage: 90,\n    maxPercentage: 100,\n  },\n  ACIMA_DA_MEDIA: {\n    label: 'Acima da média',\n    variant: 'info',\n    minPercentage: 70,\n    maxPercentage: 89,\n  },\n  ABAIXO_DA_MEDIA: {\n    label: 'Abaixo da média',\n    variant: 'warning',\n    minPercentage: 40,\n    maxPercentage: 69,\n  },\n  PONTO_DE_ATENCAO: {\n    label: 'Ponto de atenção',\n    variant: 'error',\n    minPercentage: 0,\n    maxPercentage: 39,\n  },\n};\n\n/**\n * Get performance tag based on percentage\n * @param percentage - Performance percentage (0-100)\n * @returns Performance tag type\n */\nexport function getPerformanceTag(percentage: number): PerformanceTag {\n  if (percentage >= 90) return PerformanceTag.DESTAQUE_DA_TURMA;\n  if (percentage >= 70) return PerformanceTag.ACIMA_DA_MEDIA;\n  if (percentage >= 40) return PerformanceTag.ABAIXO_DA_MEDIA;\n  return PerformanceTag.PONTO_DE_ATENCAO;\n}\n\n/**\n * Get performance tag configuration based on percentage\n * @param percentage - Performance percentage (0-100)\n * @returns Performance tag configuration\n */\nexport function getPerformanceTagConfig(\n  percentage: number\n): PerformanceTagConfig {\n  const tag = getPerformanceTag(percentage);\n  return PERFORMANCE_TAG_CONFIG[tag];\n}\n"],"mappings":";AAGO,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,uBAAoB;AACpB,EAAAA,gBAAA,oBAAiB;AACjB,EAAAA,gBAAA,qBAAkB;AAClB,EAAAA,gBAAA,sBAAmB;AAJT,SAAAA;AAAA,GAAA;AA8BL,IAAM,yBAGT;AAAA,EACF,mBAAmB;AAAA,IACjB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,eAAe;AAAA,EACjB;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,eAAe;AAAA,EACjB;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,eAAe;AAAA,EACjB;AAAA,EACA,kBAAkB;AAAA,IAChB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,eAAe;AAAA,EACjB;AACF;AAOO,SAAS,kBAAkB,YAAoC;AACpE,MAAI,cAAc,GAAI,QAAO;AAC7B,MAAI,cAAc,GAAI,QAAO;AAC7B,MAAI,cAAc,GAAI,QAAO;AAC7B,SAAO;AACT;AAOO,SAAS,wBACd,YACsB;AACtB,QAAM,MAAM,kBAAkB,UAAU;AACxC,SAAO,uBAAuB,GAAG;AACnC;","names":["PerformanceTag"]}