import 'channel.dart'; import 'role.dart'; class Guild { final String id; final String name; final String ownerId; final String? icon; final String? description; final DateTime createdAt; List channels; List roles; List categories; Guild({ required this.id, required this.name, required this.ownerId, this.icon, this.description, DateTime? createdAt, List? channels, List? roles, List? categories, }) : createdAt = createdAt ?? DateTime.now(), channels = channels ?? [], roles = roles ?? [], categories = categories ?? []; factory Guild.fromJson(Map json) { return Guild( id: json['id'] as String, name: json['name'] as String, ownerId: json['owner_id'] as String, icon: json['icon'] as String?, description: json['description'] as String?, createdAt: json['created_at'] != null ? DateTime.parse(json['created_at'] as String) : DateTime.now(), ); } } class Category { final String id; final String name; final int position; Category({ required this.id, required this.name, required this.position, }); factory Category.fromJson(Map json) { return Category( id: json['id'] as String, name: json['name'] as String, position: json['position'] as int? ?? 0, ); } }