import { DateTime } from 'luxon'; class Channel { static boot({ at, id, name }) { return new Channel({ at: DateTime.fromISO(at), id, name }); } constructor({ at, id, name }) { this.at = at; this.id = id; this.name = name; } } export class Channels { all = $state([]); static boot(channels) { const all = channels.map((channel) => Channel.boot(channel)); return new Channels({ all }); } constructor({ all }) { this.all = all; } add({ at, id, name }) { this.all.push(Channel.boot({ at, id, name })); } remove(id) { this.all = this.all.filter((channel) => channel.id !== id); } }