mirror of
https://github.com/kjanat/livedash-node.git
synced 2026-01-16 08:32:09 +01:00
- Added @tailwindcss/postcss to devDependencies for better PostCSS integration. - Enhanced session import logic in refresh-sessions.ts to ensure proper data mapping and type safety. - Updated postcss.config.js to use the correct plugin name for Tailwind CSS. - Modified tsconfig.json to temporarily disable strict mode and allow implicit any types for smoother development.
95 lines
2.0 KiB
TypeScript
95 lines
2.0 KiB
TypeScript
import { Session as NextAuthSession } from 'next-auth';
|
|
|
|
export interface UserSession extends NextAuthSession {
|
|
user: {
|
|
id?: string;
|
|
name?: string;
|
|
email?: string;
|
|
image?: string;
|
|
companyId: string;
|
|
role: string;
|
|
};
|
|
}
|
|
|
|
export interface Company {
|
|
id: string;
|
|
name: string;
|
|
csvUrl: string;
|
|
csvUsername?: string;
|
|
csvPassword?: string;
|
|
sentimentAlert?: number; // Match Prisma schema naming
|
|
createdAt: Date;
|
|
updatedAt: Date;
|
|
}
|
|
|
|
export interface User {
|
|
id: string;
|
|
email: string;
|
|
password: string;
|
|
role: string;
|
|
companyId: string;
|
|
resetToken?: string | null;
|
|
resetTokenExpiry?: Date | null;
|
|
company?: Company;
|
|
createdAt: Date;
|
|
updatedAt: Date;
|
|
}
|
|
|
|
export interface ChatSession {
|
|
id: string;
|
|
sessionId: string;
|
|
companyId: string;
|
|
userId?: string | null;
|
|
category?: string | null;
|
|
language?: string | null;
|
|
sentiment?: number | null;
|
|
startTime: Date;
|
|
endTime?: Date | null;
|
|
createdAt: Date;
|
|
updatedAt: Date;
|
|
|
|
// Extended session properties that might be used in metrics
|
|
avgResponseTime?: number | null;
|
|
escalated?: boolean;
|
|
forwardedHr?: boolean;
|
|
tokens?: number;
|
|
tokensEur?: number;
|
|
initialMsg?: string;
|
|
}
|
|
|
|
export interface DayMetrics {
|
|
[day: string]: number;
|
|
}
|
|
|
|
export interface CategoryMetrics {
|
|
[category: string]: number;
|
|
}
|
|
|
|
export interface LanguageMetrics {
|
|
[language: string]: number;
|
|
}
|
|
|
|
export interface MetricsResult {
|
|
totalSessions: number;
|
|
avgSessionsPerDay: number;
|
|
avgSessionLength: number | null;
|
|
days: DayMetrics;
|
|
languages: LanguageMetrics;
|
|
categories: CategoryMetrics;
|
|
belowThresholdCount: number;
|
|
// Additional properties for dashboard
|
|
escalatedCount?: number;
|
|
forwardedCount?: number;
|
|
avgSentiment?: number;
|
|
avgResponseTime?: number;
|
|
totalTokens?: number;
|
|
totalTokensEur?: number;
|
|
sentimentThreshold?: number | null;
|
|
}
|
|
|
|
export interface ApiResponse<T> {
|
|
success: boolean;
|
|
data?: T;
|
|
error?: string;
|
|
}
|