serializeSessions function
Serializes a list of sessions into a TTL string.
Implementation
String serializeSessions(List<Map<String, String>> sessions) {
if (sessions.isEmpty) {
return _prefixes;
}
final buffer = StringBuffer();
buffer.write(_prefixes);
for (final session in sessions) {
final String start = session['start']!;
final String end = session['end']!;
final String type = session['type'] ?? 'bell';
final String duration = session['silenceDuration'] ?? '1200';
final String title = session['title'] ?? '';
final String description = session['description'] ?? '';
// Use timestamp as unique ID
final String id = DateTime.parse(start).millisecondsSinceEpoch.toString();
buffer.write('\n:session_$id a :Session;\n');
buffer.write(' :start "$start"^^xsd:dateTime;\n');
buffer.write(' :end "$end"^^xsd:dateTime;\n');
buffer.write(' :type "$type";\n');
buffer.write(' :silenceDuration $duration');
if (title.isNotEmpty) buffer.write(';\n :title "$title"');
if (description.isNotEmpty) {
buffer.write(';\n :description "$description"');
}
buffer.write('.\n');
}
return buffer.toString();
}