53 lines
1.5 KiB
Dart
53 lines
1.5 KiB
Dart
import 'dart:developer';
|
|
|
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:equatable/equatable.dart';
|
|
|
|
import 'package:service_repository/service_repository.dart';
|
|
|
|
part 'service_event.dart';
|
|
part 'service_state.dart';
|
|
|
|
class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
|
|
final FirebaseServiceRepository _serviceRepository;
|
|
|
|
ServiceBloc({required FirebaseServiceRepository serviceRepository})
|
|
: _serviceRepository = serviceRepository,
|
|
super(CreateServiceInitial()) {
|
|
on<CreateService>(_onCreateService);
|
|
}
|
|
|
|
void _onCreateService(CreateService event, Emitter<ServiceState> emit) async {
|
|
try {
|
|
ServiceEntity service = ServiceEntity(
|
|
professionalId: event.professionalId,
|
|
professionalScored: false,
|
|
userId: event.userId,
|
|
userScored: false,
|
|
address: event.address,
|
|
aditionalAddress: event.aditionalAddress,
|
|
latitude: event.latitude,
|
|
longitude: event.longitude,
|
|
day: event.day,
|
|
createdAt: event.createdAt,
|
|
description: event.description,
|
|
range1Hour1: event.range1Hour1,
|
|
range1Hour2: event.range1Hour2,
|
|
rate: event.rate,
|
|
status: ServiceStatus.pending,
|
|
location: event.location,
|
|
);
|
|
|
|
log('xd -- $service');
|
|
|
|
await _serviceRepository.createService(service);
|
|
|
|
emit(const CreateServiceSuccess());
|
|
} catch (e) {
|
|
emit(CreateServiceFailure());
|
|
}
|
|
}
|
|
}
|