proxibuy/lib/data/models/datasources/offer_data_source.dart

57 lines
1.9 KiB
Dart

// تعریف یک قرارداد که هم منبع داده واقعی و هم ساختگی از آن پیروی کنند
import 'package:proxibuy/data/models/offer_model.dart';
abstract class OfferDataSource {
Future<List<OfferModel>> getNearbyOffers();
}
// پیاده‌سازی منبع داده ساختگی
class MockOfferDataSource implements OfferDataSource {
@override
Future<List<OfferModel>> 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,
),
];
}
}