veza/veza-backend-api/internal/repositories/chat_message_repository.go
2025-12-16 11:23:49 -05:00

33 lines
855 B
Go

package repositories
import (
"context"
"fmt"
"veza-backend-api/internal/models"
"github.com/google/uuid"
"gorm.io/gorm"
)
type ChatMessageRepository struct {
db *gorm.DB
}
func NewChatMessageRepository(db *gorm.DB) *ChatMessageRepository {
return &ChatMessageRepository{db: db}
}
func (r *ChatMessageRepository) GetConversationMessages(ctx context.Context, conversationID uuid.UUID, limit, offset int) ([]models.ChatMessage, error) {
var messages []models.ChatMessage
// Note: ChatMessage.ConversationID is mapped to column "room_id" in DB
err := r.db.WithContext(ctx).
Where("room_id = ? AND is_deleted = ?", conversationID, false).
Order("created_at DESC").
Limit(limit).
Offset(offset).
Find(&messages).Error
if err != nil {
return nil, fmt.Errorf("failed to get conversation messages: %w", err)
}
return messages, nil
}