horario del profesional

This commit is contained in:
Felipe
2024-03-27 16:42:50 -05:00
parent ac16be0406
commit d7fe33cf30
26 changed files with 927 additions and 163 deletions
@@ -0,0 +1 @@
export '/src/entities/service_entity.dart';
@@ -0,0 +1,126 @@
import 'package:equatable/equatable.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:service_repository/service_repository.dart';
import 'package:flutter/material.dart';
class ServiceEntity extends Equatable {
final String professionalId;
final bool professionalScored;
final String userId;
final bool userScored;
final String address;
final String aditionalAddress;
final double latitude;
final double longitude;
final String day;
final Timestamp createdAt;
final String description;
final TimeOfDay range1Hour1;
final TimeOfDay range1Hour2;
final String rate;
final ServiceStatus status;
final LocationPreferences location;
const ServiceEntity({
required this.professionalId,
required this.professionalScored,
required this.userId,
required this.userScored,
required this.address,
required this.aditionalAddress,
required this.latitude,
required this.longitude,
required this.day,
required this.createdAt,
required this.description,
required this.range1Hour1,
required this.range1Hour2,
required this.rate,
required this.status,
required this.location,
});
static ServiceEntity fromDocument(Map<String, dynamic> doc) {
return ServiceEntity(
professionalId: doc['professional_id'] as String,
professionalScored: doc['professional_scored'] as bool,
userId: doc['user_id'] as String,
userScored: doc['user_scored'] as bool,
address: doc['address'] as String,
aditionalAddress: doc['aditional_address'] as String,
latitude: doc['latitude'] as double,
longitude: doc['longitude'] as double,
day: doc['day'] as String,
createdAt: doc['created_at'] as Timestamp,
description: doc['description'] as String,
range1Hour1: doc['range1_hour1'] as TimeOfDay,
range1Hour2: doc['range1_hour2'] as TimeOfDay,
status: intToEnumService(doc['status'] as int),
rate: doc['rate'] as String,
location: intToEnum(doc['location'] as int),
);
}
Map<String, dynamic> toDocument() {
return {
'professional_id': professionalId,
'professional_scored': professionalScored,
'user_id': userId,
'user_scored': userScored,
'address': address,
'aditional_address': aditionalAddress,
'latitude': latitude,
'longitude': longitude,
'day': day,
'created_at': createdAt,
'description': description,
'range1_hour1': range1Hour1,
'range1_hour2': range1Hour2,
'rate': rate,
'status': enumToIntService(status),
'location': enumToInt(location),
};
}
@override
List<Object> get props => [
professionalId,
professionalScored,
userId,
userScored,
address,
aditionalAddress,
latitude,
longitude,
day,
createdAt,
description,
range1Hour1,
range1Hour2,
rate,
status,
location,
];
@override
String toString() {
return '''ServiceEntity{{
professionalId: $professionalId,
professionalScored: $professionalScored,
userId: $userId,
userScored: $userScored,
address: $address,
aditionalAddress: $aditionalAddress,
latitude: $latitude,
longitude: $longitude,
day: $day,
createdAt: $createdAt,
description: $description,
range1Hour1: $range1Hour1,
range1Hour2: $range1Hour2,
rate: $rate,
status: $status,
location: $location
}}''';
}
}