97 lines
2.8 KiB
Objective-C
97 lines
2.8 KiB
Objective-C
//
|
|
// 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
|