// // KBAiChatMessage.m // keyBoard // // Created by Kiro on 2026/1/23. // #import "KBAiChatMessage.h" @implementation KBAiChatMessage + (instancetype)loadingUserMessage { KBAiChatMessage *message = [[KBAiChatMessage alloc] init]; message.type = KBAiChatMessageTypeUser; message.text = @""; message.timestamp = [NSDate date]; message.isComplete = NO; message.isLoading = YES; return message; } + (instancetype)userMessageWithText:(NSString *)text { KBAiChatMessage *message = [[KBAiChatMessage alloc] init]; message.type = KBAiChatMessageTypeUser; message.text = text; message.timestamp = [NSDate date]; message.isComplete = YES; message.isLoading = NO; return message; } + (instancetype)assistantMessageWithText:(NSString *)text audioDuration:(NSTimeInterval)duration audioData:(NSData *)audioData { KBAiChatMessage *message = [[KBAiChatMessage alloc] init]; message.type = KBAiChatMessageTypeAssistant; message.text = text; message.timestamp = [NSDate date]; message.audioDuration = duration; message.audioData = audioData; message.isComplete = NO; message.isLoading = NO; return message; } + (instancetype)assistantMessageWithText:(NSString *)text audioId:(NSString *)audioId { KBAiChatMessage *message = [[KBAiChatMessage alloc] init]; message.type = KBAiChatMessageTypeAssistant; message.text = text; message.timestamp = [NSDate date]; message.audioId = audioId; message.audioDuration = 0; message.audioData = nil; message.isComplete = NO; message.isLoading = NO; return message; } + (instancetype)assistantMessageWithText:(NSString *)text { KBAiChatMessage *message = [[KBAiChatMessage alloc] init]; message.type = KBAiChatMessageTypeAssistant; message.text = text; message.timestamp = [NSDate date]; message.audioId = nil; message.audioDuration = 0; message.audioData = nil; message.isComplete = NO; message.isLoading = NO; return message; } + (instancetype)loadingAssistantMessage { KBAiChatMessage *message = [[KBAiChatMessage alloc] init]; message.type = KBAiChatMessageTypeAssistant; message.text = @""; message.timestamp = [NSDate date]; message.audioId = nil; message.audioDuration = 0; message.audioData = nil; message.isComplete = NO; message.isLoading = YES; message.needsTypewriterEffect = NO; return message; } + (instancetype)timeMessageWithTimestamp:(NSDate *)timestamp { KBAiChatMessage *message = [[KBAiChatMessage alloc] init]; message.type = KBAiChatMessageTypeTime; message.timestamp = timestamp; message.isComplete = YES; message.isLoading = NO; return message; } @end