49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
export interface Comment {
|
|
id: string;
|
|
author: string;
|
|
content: string;
|
|
timestamp: string;
|
|
likes: number;
|
|
replies?: Comment[];
|
|
platform: 'facebook' | 'instagram' | 'twitter' | 'youtube' | 'linkedin' | 'other';
|
|
sentiment?: 'positive' | 'neutral' | 'negative';
|
|
keywords?: string[];
|
|
category?: string;
|
|
}
|
|
|
|
export interface ReplyTone {
|
|
id: string;
|
|
name: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface ReplyPersona {
|
|
id: string;
|
|
name: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface SettingsData {
|
|
defaultTone: string;
|
|
defaultPersona: string;
|
|
autoDetectPlatform: boolean;
|
|
language: 'zh-TW' | 'en-US';
|
|
maxComments: number;
|
|
}
|
|
|
|
export interface CommentFilter {
|
|
searchTerm: string;
|
|
platform: string;
|
|
sortBy: 'newest' | 'oldest' | 'likes' | 'replies';
|
|
sentiment?: 'positive' | 'neutral' | 'negative' | 'all';
|
|
}
|
|
|
|
export interface CommentAnalytics {
|
|
sentimentCounts: {
|
|
positive: number;
|
|
neutral: number;
|
|
negative: number;
|
|
};
|
|
topKeywords: Array<{keyword: string, count: number}>;
|
|
categories: Record<string, number>;
|
|
} |