- Auth: phone login → POST /auth/phone (direct, no OTP); link phone → POST /auth/verify-phone; add email → POST /auth/link-email
- Services: replace query-param paths with dedicated role endpoints (/services/me, /services/professional/requests, /services/professional, etc.)
- Services: PATCH /services/:id → PATCH /services/:id/status
- Calendar: → GET /services/professional/calendar
- Professionals: /users/professionals → /professionals (handles {data:[...]} response)
- Professional info: /professional-info/:id → /professionals/:id; PATCH → /professionals/me
- Comments: /comments?... → /comments/user/:id and /comments/professional/:id
- Chat: /chats → /chat; start chat → POST /chat/start/:professionalId; poll GET /chat/:chatId/messages; send → POST /chat/:chatId/message
- Cities: /cities → GET /locations/countries (parse nested countries→regions→cities)
- Profesional.fromDocument: null-safe fields; convert schedules array→Schedules, specializations array→name/picture lists, payment_methods object/array
- Usuario.fromDocument: null-safe professional_state and id
- UsuarioProfesional.fromDocument: handle backend format (users nested, professional at top level)
- ScheduleEntity.parseTime: handle ISO8601 time strings from backend
- MessageEntity.fromDocument: accept sender_id (backend) or owner_id (legacy)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
37 lines
808 B
Dart
37 lines
808 B
Dart
class MessageEntity {
|
|
final String ownerId;
|
|
final String content;
|
|
final DateTime createdAt;
|
|
|
|
const MessageEntity({
|
|
required this.ownerId,
|
|
required this.content,
|
|
required this.createdAt,
|
|
});
|
|
|
|
static MessageEntity fromDocument(Map<String, dynamic> doc) {
|
|
return MessageEntity(
|
|
ownerId: (doc['sender_id'] ?? doc['owner_id']) as String,
|
|
content: doc['content'] as String,
|
|
createdAt: DateTime.parse(doc['created_at'] as String),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toDocument() {
|
|
return {
|
|
'owner_id': ownerId,
|
|
'content': content,
|
|
'created_at': createdAt.toIso8601String(),
|
|
};
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return '''MessageEntity{
|
|
ownerId: $ownerId,
|
|
content: $content,
|
|
createdAt: $createdAt
|
|
}''';
|
|
}
|
|
}
|