57 lines
1.9 KiB
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,
|
|
),
|
|
];
|
|
}
|
|
} |