Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions internal/models/directchat.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ import "time"

// DirectChat representa un chat directo entre dos usuarios
type DirectChat struct {
ID string `json:"id" firestore:"id"`
UserIDs []string `json:"userIds" firestore:"userIds"`
LastMessage *Message `json:"lastMessage,omitempty" firestore:"lastMessage,omitempty"`
CreatedAt time.Time `json:"createdAt" firestore:"createdAt"`
UpdatedAt time.Time `json:"updatedAt" firestore:"updatedAt"`
IsDeleted bool `json:"isDeleted" firestore:"isDeleted"`
ID string `json:"id" firestore:"id"`
UserIDs []string `json:"userIds" firestore:"userIds"`
DisplayNames []string `json:"displayNames" firestore:"displayNames,omitempty"`
LastMessage *Message `json:"lastMessage,omitempty" firestore:"lastMessage,omitempty"`
CreatedAt time.Time `json:"createdAt" firestore:"createdAt"`
UpdatedAt time.Time `json:"updatedAt" firestore:"updatedAt"`
IsDeleted bool `json:"isDeleted" firestore:"isDeleted"`
}
14 changes: 13 additions & 1 deletion internal/repositories/directchat_repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ import (
// DirectChatRepository maneja las operaciones de base de datos para los chats directos
type DirectChatRepository struct {
FirestoreClient *config.FirestoreClient
UserRepo *UserRepository
}

// NewDirectChatRepository crea una nueva instancia de DirectChatRepository
func NewDirectChatRepository(client *config.FirestoreClient) *DirectChatRepository {
func NewDirectChatRepository(client *config.FirestoreClient, userRepo *UserRepository) *DirectChatRepository {
return &DirectChatRepository{
FirestoreClient: client,
UserRepo: userRepo,
}
}

Expand Down Expand Up @@ -111,6 +113,16 @@ func (r *DirectChatRepository) GetUserDirectChats(userID string) ([]models.Direc
if err := doc.DataTo(&chat); err != nil {
return nil, err
}

// Obtener los nombres actualizados de los usuarios
chat.DisplayNames = make([]string, len(chat.UserIDs))
for i, id := range chat.UserIDs {
user, err := r.UserRepo.GetUserByID(ctx, id)
if err == nil && user != nil {
chat.DisplayNames[i] = user.DisplayName
}
}

chats = append(chats, chat)
}

Expand Down