/// یک قابِ آواتار (کازمتیک). owned یعنی قابلِ انتخاب. class AvatarFrame { final String id; final String title; final int priceCoins; final bool vip; final bool owned; const AvatarFrame({ required this.id, required this.title, required this.priceCoins, required this.vip, required this.owned, }); factory AvatarFrame.fromJson(Map j) => AvatarFrame( id: (j['id'] ?? '') as String, title: (j['title'] ?? '') as String, priceCoins: (j['price_coins'] ?? 0) as int, vip: (j['vip'] ?? false) as bool, owned: (j['owned'] ?? false) as bool, ); } /// کاتالوگِ قاب‌ها + قابِ انتخابیِ کاربر. class FrameCatalog { final List frames; final String selected; const FrameCatalog({required this.frames, required this.selected}); }