// تعریف یک قرارداد که هم منبع داده واقعی و هم ساختگی از آن پیروی کنند import 'package:proxibuy/data/models/offer_model.dart'; abstract class OfferDataSource { Future> getNearbyOffers(); } // پیاده‌سازی منبع داده ساختگی class MockOfferDataSource implements OfferDataSource { @override Future> getNearbyOffers() async { // شبیه‌سازی یک تاخیر ۲ ثانیه‌ای شبکه await Future.delayed(const Duration(seconds: 2)); // برگرداندن لیستی از داده‌های هاردکد شده و ساختگی return const [ OfferModel( id: '1', storeName: 'رستوران شاندیز', title: 'چلوکباب کوبیده مخصوص', discount: '۲۰٪ تخفیف', imageUrl: 'https://picsum.photos/seed/picsum/200/300', category: 'رستوران', distanceInMeters: 350, ), OfferModel( id: '2', storeName: 'کافه کتاب', title: 'نوشیدنی گرم به همراه کیک روز', discount: '۱۵٪ تخفیف', imageUrl: 'https://picsum.photos/seed/coffee/200/300', category: 'کافه', distanceInMeters: 800, ), OfferModel( id: '3', storeName: 'فروشگاه پوشاک خانواده', title: 'تمام اجناس فصل', discount: 'تا ۵۰٪ تخفیف', imageUrl: 'https://picsum.photos/seed/fashion/200/300', category: 'پوشاک', distanceInMeters: 1200, ), OfferModel( id: '4', storeName: 'پیتزا هات', title: 'پیتزا پپرونی دو نفره', discount: 'خرید یکی، دوتا ببر', imageUrl: 'https://picsum.photos/seed/pizza/200/300', category: 'فست فود', distanceInMeters: 550, ), ]; } }