generateChatMessageModel static method

String generateChatMessageModel()

Implementation

static String generateChatMessageModel() {
  return '''
class ChatMessageModel {
final String role;
final List<ChatPartModel> parts;

ChatMessageModel({
  required this.role,
  required this.parts,
});

Map<String, dynamic> toMap() {
  return {
    'role': role,
    'parts': parts.map((part) => part.toMap()).toList(),
  };
}

factory ChatMessageModel.fromMap(Map<String, dynamic> map) {
  return ChatMessageModel(
    role: map['role'] ?? '',
    parts: List<ChatPartModel>.from(
      (map['parts'] as List).map((x) => ChatPartModel.fromMap(x)),
    ),
  );
}
}

class ChatPartModel {
final String text;

ChatPartModel({required this.text});

Map<String, dynamic> toMap() {
  return {'text': text};
}

factory ChatPartModel.fromMap(Map<String, dynamic> map) {
  return ChatPartModel(text: map['text'] ?? '');
}
}

class ChatMessage {
final String text;
final bool isUser;
final DateTime timestamp;

ChatMessage({
  required this.text,
  required this.isUser,
  DateTime? timestamp,
}) : timestamp = timestamp ?? DateTime.now();

ChatMessageModel toGeminiModel() {
  return ChatMessageModel(
    role: isUser ? 'user' : 'model',
    parts: [ChatPartModel(text: text)],
  );
}
}
''';
}