import 'dart:convert'; import 'busylight_color.dart'; class ColorPreset { final String id; final String name; final BusylightColor color; const ColorPreset({ required this.id, required this.name, required this.color, }); factory ColorPreset.fromJson(Map json) { return ColorPreset( id: json['id'] as String, name: json['name'] as String, color: BusylightColor.fromJson(json['color'] as Map), ); } Map toJson() => { 'id': id, 'name': name, 'color': { 'r': color.r, 'g': color.g, 'b': color.b, 'brightness': color.brightness, }, }; static List listFromJson(String raw) { final list = jsonDecode(raw) as List; return list.map((e) => ColorPreset.fromJson(e as Map)).toList(); } static String listToJson(List presets) { return jsonEncode(presets.map((p) => p.toJson()).toList()); } }