veza/veza-backend-api/internal/repositories/chat_message_repository.go
2025-12-03 20:29:37 +01:00

32 lines
790 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
err := r.db.WithContext(ctx).
Where("conversation_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
}