gohorsejobs/backend/internal/services/email_service.go
Tiago Yamamoto 9ee9f6855c feat: implementar múltiplas features
Backend:
- Password reset flow (forgot/reset endpoints, tokens table)
- Profile management (PUT /users/me, skills, experience, education)
- Tickets system (CRUD, messages, stats)
- Activity logs (list, stats)
- Document validator (CNPJ, CPF, EIN support)
- Input sanitizer (XSS prevention)
- Full-text search em vagas (plainto_tsquery)
- Filtros avançados (location, salary, workMode)
- Ordenação (date, salary, relevance)

Frontend:
- Forgot/Reset password pages
- Candidate profile edit page
- Sanitize utilities (sanitize.ts)

Backoffice:
- TicketsModule proxy
- ActivityLogsModule proxy
- Dockerfile otimizado (multi-stage, non-root, healthcheck)

Migrations:
- 013: Profile fields to users
- 014: Password reset tokens
- 015: Tickets table
- 016: Activity logs table
2025-12-27 11:19:47 -03:00

30 lines
843 B
Go

package services
import (
"log"
)
// EmailService defines interface for email operations
type EmailService interface {
SendEmail(to, subject, body string) error
}
// MockEmailService implements EmailService logging to stdout
type MockEmailService struct{}
func NewMockEmailService() *MockEmailService {
return &MockEmailService{}
}
func (s *MockEmailService) SendEmail(to, subject, body string) error {
log.Printf("----------------------------------------------------------------")
log.Printf("[MOCK EMAIL] To: %s", to)
log.Printf("[MOCK EMAIL] Subject: %s", subject)
log.Printf("[MOCK EMAIL] Body:\n%s", body)
log.Printf("----------------------------------------------------------------")
// Simulate success
return nil
}
// In proper implementation, we would have SMTP email service here
// func NewSMTPEmailService(...) ...