import 'package:staff_home/src/domain/entities/shift.dart';

class MockService {
  static final Shift _sampleShift1 = Shift(
    id: '1',
    title: 'Line Cook',
    clientName: 'The Burger Joint',
    hourlyRate: 22.50,
    location: 'Downtown, NY',
    locationAddress: '123 Main St, New York, NY 10001',
    date: DateTime.now().toIso8601String(),
    startTime: '16:00',
    endTime: '22:00',
    createdDate: DateTime.now()
        .subtract(const Duration(hours: 2))
        .toIso8601String(),
    tipsAvailable: true,
    mealProvided: true,
    managers: [ShiftManager(name: 'John Doe', phone: '+1 555 0101')],
    description: 'Help with dinner service. Must be experienced with grill.',
  );

  static final Shift _sampleShift2 = Shift(
    id: '2',
    title: 'Dishwasher',
    clientName: 'Pasta Place',
    hourlyRate: 18.00,
    location: 'Brooklyn, NY',
    locationAddress: '456 Bedford Ave, Brooklyn, NY 11211',
    date: DateTime.now().add(const Duration(days: 1)).toIso8601String(),
    startTime: '18:00',
    endTime: '23:00',
    createdDate: DateTime.now()
        .subtract(const Duration(hours: 5))
        .toIso8601String(),
    tipsAvailable: false,
    mealProvided: true,
  );

  static final Shift _sampleShift3 = Shift(
    id: '3',
    title: 'Bartender',
    clientName: 'Rooftop Bar',
    hourlyRate: 25.00,
    location: 'Manhattan, NY',
    locationAddress: '789 5th Ave, New York, NY 10022',
    date: DateTime.now().add(const Duration(days: 2)).toIso8601String(),
    startTime: '19:00',
    endTime: '02:00',
    createdDate: DateTime.now()
        .subtract(const Duration(hours: 1))
        .toIso8601String(),
    tipsAvailable: true,
    parkingAvailable: true,
    description: 'High volume bar. Mixology experience required.',
  );

  Future<List<Shift>> getTodayShifts() async {
    await Future.delayed(const Duration(milliseconds: 500));
    return [_sampleShift1];
  }

  Future<List<Shift>> getTomorrowShifts() async {
    await Future.delayed(const Duration(milliseconds: 500));
    return [_sampleShift2];
  }

  Future<List<Shift>> getRecommendedShifts() async {
    await Future.delayed(const Duration(milliseconds: 500));
    return [_sampleShift3, _sampleShift1, _sampleShift2];
  }

  Future<void> createWorkerProfile(Map<String, dynamic> data) async {
    await Future.delayed(const Duration(seconds: 1));
  }
}
