|
|
| export enum Gender { |
| MALE = 'Male', |
| FEMALE = 'Female', |
| } |
|
|
| export interface UserInput { |
| name?: string; |
| birthPlace?: string; |
| gender: Gender; |
| birthYear: string; |
| yearPillar: string; |
| monthPillar: string; |
| dayPillar: string; |
| hourPillar: string; |
| startAge: string; |
| firstDaYun: string; |
| |
| |
| modelName: string; |
| apiBaseUrl: string; |
| apiKey: string; |
| useCustomApi: boolean; |
|
|
| authEmail?: string; |
| authPassword?: string; |
| } |
|
|
| export interface KLinePoint { |
| age: number; |
| year: number; |
| ganZhi: string; |
| daYun?: string; |
| open: number; |
| close: number; |
| high: number; |
| low: number; |
| score: number; |
| reason: string; |
| events?: TimelineEvent[]; |
| } |
|
|
| |
|
|
| export type TimelineEventType = 'corporate' | 'personal' | 'market'; |
| export type TimelineEventSentiment = 'positive' | 'negative' | 'neutral'; |
|
|
| export interface TimelineEvent { |
| id?: string; |
| year: number; |
| month?: number; |
| type: TimelineEventType; |
| title: string; |
| description: string; |
| sentiment: TimelineEventSentiment; |
| icon: string; |
| isFuture?: boolean; |
| verificationStatus?: 'pending' | 'verified' | 'unverified'; |
| } |
|
|
| export interface AnalysisData { |
| bazi: string[]; |
| summary: string; |
| summaryScore: number; |
|
|
| personality: string; |
| personalityScore: number; |
|
|
| industry: string; |
| industryScore: number; |
|
|
| fengShui: string; |
| fengShuiScore: number; |
|
|
| wealth: string; |
| wealthScore: number; |
|
|
| marriage: string; |
| marriageScore: number; |
|
|
| health: string; |
| healthScore: number; |
|
|
| family: string; |
| familyScore: number; |
|
|
| |
| crypto: string; |
| cryptoScore: number; |
| cryptoYear: string; |
| cryptoStyle: string; |
|
|
| |
|
|
| |
| appearance?: string; |
| bodyType?: string; |
| skin?: string; |
| characterSummary?: string; |
|
|
| |
| monthlyFortune?: string; |
| monthlyHighlights?: string[]; |
| yearlyFortune?: string; |
| yearlyKeyEvents?: string[]; |
|
|
| |
| luckyColors?: string[]; |
| luckyDirections?: string[]; |
| luckyZodiac?: string[]; |
| luckyNumbers?: number[]; |
|
|
| |
| keyDatesThisMonth?: string[]; |
| keyDatesThisYear?: string[]; |
|
|
| |
| healthBodyParts?: string[]; |
|
|
| |
| pastEvents?: Array<{year: number; event: string; basis?: string}>; |
| futureEvents?: Array<{year: number; event: string; basis?: string}>; |
|
|
| |
| peakYears?: Array<{year: number; age: number; score: number; reason?: string}>; |
| troughYears?: Array<{year: number; age: number; score: number; reason?: string}>; |
| } |
|
|
| |
|
|
| export type AgentType = 'core' | 'kline' | 'career' | 'marriage' | 'crypto'; |
|
|
| export type AgentStatusType = 'pending' | 'running' | 'completed' | 'failed'; |
|
|
| export interface AgentStatus { |
| status: AgentStatusType; |
| data?: any; |
| error?: string; |
| elapsed?: string; |
| model?: string; |
| } |
|
|
| export interface ParallelAnalysisResponse { |
| result: LifeDestinyResult; |
| isGuest: boolean; |
| user: { id: string; email: string; points: number } | null; |
| cost: number; |
| fromCache?: boolean; |
| processingTimeMs?: number; |
| agentsUsed?: string[]; |
| successCount?: number; |
| totalAgents?: number; |
| } |
|
|
| export interface LifeDestinyResult { |
| chartData: KLinePoint[]; |
| analysis: AnalysisData; |
| } |
|
|
| export interface AuthUser { |
| id: string; |
| email: string; |
| points: number; |
| } |
|
|
| export interface HistoryListItem { |
| id: string; |
| createdAt: string; |
| cost: number; |
| summary: string; |
| } |
|
|
| |
| export interface UserProfile extends UserInput { |
| id: string; |
| isDefault: boolean; |
| createdAt: string; |
| } |
|
|
| |
|
|
| export type CelebrityCategory = |
| | 'sudden_downfall' |
| | 'rising_power' |
| | 'corporate_fate' |
| | 'ai_tech' |
| | 'crypto_macro'; |
|
|
| |
| export interface CelebrityAnalysisData { |
| |
| summary: string; |
| personality: string; |
| career: string; |
| wealth: string; |
| marriage: string; |
| health: string; |
|
|
| |
| fengShui?: string; |
| family?: string; |
|
|
| |
| lifeTrajectory?: string; |
| publicPerception?: string; |
| legacyImpact?: string; |
| } |
|
|
| |
| export interface CelebrityScores { |
| overall: number; |
| personality: number; |
| career: number; |
| wealth: number; |
| marriage: number; |
| health: number; |
| } |
|
|
| |
| export interface CelebrityFinancialData { |
| stockPrice?: string; |
| marketCap?: string; |
| netWorth?: string; |
| peakNetWorth?: string; |
| majorHoldings?: string[]; |
| revenueHistory?: string; |
| } |
|
|
| |
| export interface CelebrityHonor { |
| title: string; |
| year?: number; |
| category?: string; |
| } |
|
|
| export interface CelebrityCase { |
| id: string; |
| name: string; |
| nameCn: string; |
| category: CelebrityCategory; |
| categoryCn: string; |
| birthDate: string; |
| birthLocation: { city: string; lat: number; lng: number }; |
| description: string; |
| tags: string[]; |
| yearPillar: string; |
| monthPillar: string; |
| dayPillar: string; |
| hourPillar: string; |
| chartData: KLinePoint[]; |
| highlights: CaseHighlight[]; |
| hotnessScore: number; |
| viewCount: number; |
|
|
| |
| analysisData?: CelebrityAnalysisData; |
| scores?: CelebrityScores; |
| financialData?: CelebrityFinancialData; |
| honors?: CelebrityHonor[]; |
|
|
| |
| analysisGeneratedAt?: string; |
| analysisVersion?: number; |
| } |
|
|
| export interface CaseHighlight { |
| age: number; |
| year: number; |
| type: 'peak' | 'trough' | 'transition' | 'event'; |
| note: string; |
| baziExplanation?: string; |
| } |
|
|
| export interface BaziSimilarity { |
| overallScore: number; |
| yearPillarMatch: number; |
| monthPillarMatch: number; |
| dayPillarMatch: number; |
| hourPillarMatch: number; |
| elementBalance: number; |
| dayMasterRelation: string; |
| insights: string[]; |
| } |
|
|