import '../../domain/entities/customer.dart'; import '../../domain/entities/product.dart'; /// Demo catalogue and customer book. /// /// Barcodes are valid 13-digit EAN strings beginning with the Indian GS1 /// prefix `890`, so a real scanner can be tested against this data. class SeedData { const SeedData._(); static List products() => const [ // ------------------------------------------------------------ Dairy Product( id: 'p001', name: 'Amul Milk 1L', barcode: '8901234500011', sku: 'DRY-MLK-1000', category: ProductCategory.dairy, price: 62, mrp: 66, stock: 50, emoji: 'πŸ₯›', unit: UnitOfMeasure.litre, gstRate: 0.05, brand: 'Amul', ), Product( id: 'p002', name: 'Amul Butter 500g', barcode: '8901234500028', sku: 'DRY-BTR-0500', category: ProductCategory.dairy, price: 245, mrp: 265, stock: 30, emoji: '🧈', gstRate: 0.12, brand: 'Amul', ), Product( id: 'p003', name: 'Curd 400g', barcode: '8901234500035', sku: 'DRY-CRD-0400', category: ProductCategory.dairy, price: 48, mrp: 52, stock: 40, emoji: 'πŸ₯£', gstRate: 0.05, brand: 'Nandini', ), Product( id: 'p004', name: 'Paneer 200g', barcode: '8901234500042', sku: 'DRY-PNR-0200', category: ProductCategory.dairy, price: 90, stock: 20, emoji: 'πŸ§€', gstRate: 0.05, brand: 'Milky Mist', ), Product( id: 'p005', name: 'Cheese Slices 200g', barcode: '8901234500059', sku: 'DRY-CHS-0200', category: ProductCategory.dairy, price: 135, mrp: 145, stock: 25, emoji: 'πŸ§€', gstRate: 0.12, brand: 'Britannia', ), // ---------------------------------------------------------- Grocery Product( id: 'p010', name: 'Basmati Rice 1kg', barcode: '8901234500110', sku: 'GRO-RCE-1000', category: ProductCategory.grocery, price: 180, mrp: 199, stock: 4, emoji: '🍚', unit: UnitOfMeasure.kilogram, gstRate: 0.05, brand: 'India Gate', ), Product( id: 'p011', name: 'Fortune Oil 1L', barcode: '8901234500127', sku: 'GRO-OIL-1000', category: ProductCategory.grocery, price: 145, mrp: 160, stock: 60, emoji: 'πŸ›’οΈ', unit: UnitOfMeasure.litre, gstRate: 0.05, brand: 'Fortune', ), Product( id: 'p012', name: 'Toor Dal 500g', barcode: '8901234500134', sku: 'GRO-DAL-0500', category: ProductCategory.grocery, price: 90, stock: 45, emoji: '🫘', gstRate: 0.05, brand: 'Tata Sampann', ), Product( id: 'p013', name: 'Aashirvaad Atta 5kg', barcode: '8901234500141', sku: 'GRO-ATA-5000', category: ProductCategory.grocery, price: 285, mrp: 310, stock: 35, emoji: '🌾', unit: UnitOfMeasure.kilogram, gstRate: 0.05, brand: 'Aashirvaad', ), Product( id: 'p014', name: 'Sugar 1kg', barcode: '8901234500158', sku: 'GRO-SGR-1000', category: ProductCategory.grocery, price: 48, stock: 80, emoji: '🍬', unit: UnitOfMeasure.kilogram, gstRate: 0.05, ), Product( id: 'p015', name: 'Maggi 2-min', barcode: '8901234500165', sku: 'GRO-MAG-0070', category: ProductCategory.grocery, price: 14, stock: 120, emoji: '🍜', gstRate: 0.12, brand: 'NestlΓ©', ), Product( id: 'p016', name: 'Tata Salt 1kg', barcode: '8901234500172', sku: 'GRO-SLT-1000', category: ProductCategory.grocery, price: 28, stock: 95, emoji: 'πŸ§‚', unit: UnitOfMeasure.kilogram, gstRate: 0.05, brand: 'Tata', ), // -------------------------------------------------------- Beverages Product( id: 'p020', name: 'Coca-Cola 600ml', barcode: '8901234500219', sku: 'BEV-COK-0600', category: ProductCategory.beverages, price: 40, stock: 80, emoji: 'πŸ₯€', unit: UnitOfMeasure.millilitre, gstRate: 0.28, brand: 'Coca-Cola', ), Product( id: 'p021', name: 'Frooti 250ml', barcode: '8901234500226', sku: 'BEV-FRT-0250', category: ProductCategory.beverages, price: 15, stock: 100, emoji: 'πŸ₯­', gstRate: 0.12, brand: 'Parle Agro', ), Product( id: 'p022', name: 'Bisleri 1L', barcode: '8901234500233', sku: 'BEV-WTR-1000', category: ProductCategory.beverages, price: 20, stock: 150, emoji: 'πŸ’§', unit: UnitOfMeasure.litre, gstRate: 0.18, brand: 'Bisleri', ), Product( id: 'p023', name: 'Red Bull 250ml', barcode: '8901234500240', sku: 'BEV-RBL-0250', category: ProductCategory.beverages, price: 125, stock: 40, emoji: 'πŸ”‹', gstRate: 0.28, brand: 'Red Bull', ), Product( id: 'p024', name: 'Bru Coffee 100g', barcode: '8901234500257', sku: 'BEV-COF-0100', category: ProductCategory.beverages, price: 165, mrp: 180, stock: 30, emoji: 'β˜•', gstRate: 0.18, brand: 'Bru', ), // ----------------------------------------------------------- Snacks Product( id: 'p030', name: 'Parle-G 800g', barcode: '8901234500318', sku: 'SNK-PGB-0800', category: ProductCategory.snacks, price: 40, stock: 90, emoji: 'πŸͺ', gstRate: 0.18, brand: 'Parle', ), Product( id: 'p031', name: "Lay's Chips 26g", barcode: '8901234500325', sku: 'SNK-LAY-0026', category: ProductCategory.snacks, price: 20, stock: 110, emoji: 'πŸ₯”', gstRate: 0.18, brand: "Lay's", ), Product( id: 'p032', name: 'Dairy Milk 55g', barcode: '8901234500332', sku: 'SNK-DMK-0055', category: ProductCategory.snacks, price: 45, stock: 75, emoji: '🍫', gstRate: 0.18, brand: 'Cadbury', ), Product( id: 'p033', name: 'Good Day 200g', barcode: '8901234500349', sku: 'SNK-GDY-0200', category: ProductCategory.snacks, price: 35, stock: 85, emoji: 'πŸͺ', gstRate: 0.18, brand: 'Britannia', ), Product( id: 'p034', name: 'Haldiram Mixture 200g', barcode: '8901234500356', sku: 'SNK-HMX-0200', category: ProductCategory.snacks, price: 55, stock: 60, emoji: 'πŸ₯œ', gstRate: 0.12, brand: 'Haldiram', ), // ---------------------------------------------------- Personal care Product( id: 'p040', name: 'Colgate 200g', barcode: '8901234500417', sku: 'PER-CLG-0200', category: ProductCategory.personalCare, price: 110, mrp: 125, stock: 55, emoji: 'πŸͺ₯', gstRate: 0.18, brand: 'Colgate', ), Product( id: 'p041', name: 'Dove Soap 100g', barcode: '8901234500424', sku: 'PER-DVE-0100', category: ProductCategory.personalCare, price: 65, stock: 70, emoji: '🧼', gstRate: 0.18, brand: 'Dove', ), Product( id: 'p042', name: 'Head & Shoulders 340ml', barcode: '8901234500431', sku: 'PER-HNS-0340', category: ProductCategory.personalCare, price: 385, mrp: 420, stock: 25, emoji: '🧴', gstRate: 0.18, brand: 'P&G', ), Product( id: 'p043', name: 'Nivea Lotion 200ml', barcode: '8901234500448', sku: 'PER-NVA-0200', category: ProductCategory.personalCare, price: 240, stock: 30, emoji: '🧴', gstRate: 0.18, brand: 'Nivea', ), // -------------------------------------------------------- Household Product( id: 'p050', name: 'Surf Excel 1kg', barcode: '8901234500516', sku: 'HSE-SRF-1000', category: ProductCategory.household, price: 165, mrp: 180, stock: 45, emoji: '🧺', unit: UnitOfMeasure.kilogram, gstRate: 0.18, brand: 'Surf Excel', ), Product( id: 'p051', name: 'Vim Bar 300g', barcode: '8901234500523', sku: 'HSE-VIM-0300', category: ProductCategory.household, price: 30, stock: 90, emoji: '🧽', gstRate: 0.18, brand: 'Vim', ), Product( id: 'p052', name: 'Harpic 500ml', barcode: '8901234500530', sku: 'HSE-HRP-0500', category: ProductCategory.household, price: 98, stock: 40, emoji: '🧴', gstRate: 0.18, brand: 'Harpic', ), Product( id: 'p053', name: 'Garbage Bags 30pc', barcode: '8901234500547', sku: 'HSE-GBG-0030', category: ProductCategory.household, price: 145, stock: 35, emoji: 'πŸ—‘οΈ', gstRate: 0.18, ), // ----------------------------------------------------------- Fruits Product( id: 'p060', name: 'Banana 1kg', barcode: '8901234500615', sku: 'FRT-BAN-1000', category: ProductCategory.fruits, price: 55, stock: 40, emoji: '🍌', unit: UnitOfMeasure.kilogram, gstRate: 0, ), Product( id: 'p061', name: 'Apple Shimla 1kg', barcode: '8901234500622', sku: 'FRT-APL-1000', category: ProductCategory.fruits, price: 180, stock: 25, emoji: '🍎', unit: UnitOfMeasure.kilogram, gstRate: 0, ), Product( id: 'p062', name: 'Alphonso Mango 1kg', barcode: '8901234500639', sku: 'FRT-MNG-1000', category: ProductCategory.fruits, price: 320, stock: 15, emoji: 'πŸ₯­', unit: UnitOfMeasure.kilogram, gstRate: 0, ), // ------------------------------------------------------- Vegetables Product( id: 'p070', name: 'Tomato 1kg', barcode: '8901234500714', sku: 'VEG-TOM-1000', category: ProductCategory.vegetables, price: 40, stock: 50, emoji: 'πŸ…', unit: UnitOfMeasure.kilogram, gstRate: 0, ), Product( id: 'p071', name: 'Onion 1kg', barcode: '8901234500721', sku: 'VEG-ONI-1000', category: ProductCategory.vegetables, price: 35, stock: 65, emoji: 'πŸ§…', unit: UnitOfMeasure.kilogram, gstRate: 0, ), Product( id: 'p072', name: 'Potato 1kg', barcode: '8901234500738', sku: 'VEG-POT-1000', category: ProductCategory.vegetables, price: 30, stock: 70, emoji: 'πŸ₯”', unit: UnitOfMeasure.kilogram, gstRate: 0, ), Product( id: 'p073', name: 'Carrot 500g', barcode: '8901234500745', sku: 'VEG-CAR-0500', category: ProductCategory.vegetables, price: 32, stock: 8, emoji: 'πŸ₯•', gstRate: 0, ), ]; static List customers() => [ Customer( id: 'c001', name: 'Abhishek', mobile: '9876543210', email: 'abhishek@example.com', gender: Gender.male, dateOfBirth: DateTime(1994, 3, 18), loyaltyPoints: 320, lifetimeSpend: 24500, visitCount: 41, createdAt: DateTime(2024, 1, 12), lastVisitAt: DateTime.now().subtract(const Duration(days: 3)), ), Customer( id: 'c002', name: 'Priya Raman', mobile: '9812345678', email: 'priya.r@example.com', gender: Gender.female, dateOfBirth: DateTime(1990, 7, 2), loyaltyPoints: 1180, lifetimeSpend: 68200, visitCount: 96, createdAt: DateTime(2023, 6, 4), lastVisitAt: DateTime.now().subtract(const Duration(days: 1)), ), Customer( id: 'c003', name: 'Karthik S', mobile: '9900112233', gender: Gender.male, loyaltyPoints: 45, lifetimeSpend: 3200, visitCount: 7, createdAt: DateTime(2025, 2, 20), lastVisitAt: DateTime.now().subtract(const Duration(days: 11)), ), Customer( id: 'c004', name: 'Meena Lakshmi', mobile: '9445566778', email: 'meena.l@example.com', gender: Gender.female, dateOfBirth: DateTime(1986, 11, 30), loyaltyPoints: 2640, lifetimeSpend: 172000, visitCount: 210, createdAt: DateTime(2022, 9, 15), lastVisitAt: DateTime.now().subtract(const Duration(hours: 20)), ), ]; }