65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
export interface Comment {
|
|
id: string;
|
|
platform: 'facebook' | 'threads' | 'instagram' | 'linkedin' | 'xiaohongshu' | 'youtube';
|
|
contentType?: 'post' | 'reel' | 'video' | 'short';
|
|
content: string;
|
|
author: string;
|
|
authorType: 'user' | 'kol' | 'official';
|
|
timestamp: string;
|
|
articleTitle: string;
|
|
postAuthor: string;
|
|
postAuthorType: 'official' | 'kol';
|
|
url: string;
|
|
status: 'pending' | 'approved' | 'rejected';
|
|
sentiment: 'positive' | 'negative' | 'neutral' | 'mixed';
|
|
aiReply?: string;
|
|
replyStatus?: 'draft' | 'sent' | 'none';
|
|
language?: 'zh-TW' | 'zh-CN' | 'en';
|
|
privateMessage?: {
|
|
content?: string;
|
|
status?: 'draft' | 'sent' | 'none';
|
|
timestamp?: string;
|
|
};
|
|
}
|
|
|
|
export interface AnalyticsData {
|
|
platform: string;
|
|
count: number;
|
|
percentage: number;
|
|
}
|
|
|
|
export interface TimelineData {
|
|
date: string;
|
|
count: number;
|
|
}
|
|
|
|
export interface SentimentData {
|
|
positive: number;
|
|
neutral: number;
|
|
negative: number;
|
|
mixed?: number;
|
|
}
|
|
|
|
export interface ReplyTemplate {
|
|
id: string;
|
|
name: string;
|
|
content: string;
|
|
language: 'zh-TW' | 'zh-CN' | 'en';
|
|
category: 'general' | 'support' | 'promotion' | 'inquiry';
|
|
type: 'reply' | 'private';
|
|
}
|
|
|
|
export interface ReplyPersona {
|
|
id: string;
|
|
name: string;
|
|
description: string;
|
|
tone: 'professional' | 'friendly' | 'formal' | 'casual';
|
|
}
|
|
|
|
export interface ReplyAccount {
|
|
id: string;
|
|
name: string;
|
|
platform: 'facebook' | 'threads' | 'instagram' | 'linkedin' | 'xiaohongshu' | 'youtube';
|
|
avatar: string;
|
|
role: 'admin' | 'moderator' | 'support';
|
|
} |