package handlers import ( "github.com/juanatsap/cv-site/internal/cache" c "github.com/juanatsap/cv-site/internal/constants" "github.com/juanatsap/cv-site/internal/pdf" "github.com/juanatsap/cv-site/internal/email" "github.com/juanatsap/cv-site/internal/templates" ) // CVHandler handles CV-related requests // Methods are split across multiple files for better organization: // - cv_pages.go: Page rendering (Home, CVContent, DefaultCVShortcut) // - cv_pdf.go: PDF export (ExportPDF) // - cv_htmx.go: HTMX toggles (ToggleLength, ToggleIcons, SwitchLanguage, ToggleTheme) // - cv_contact.go: Contact form submission (HandleContact) // - cv_helpers.go: Helper functions (skills, dates, git, templates, cookies) type CVHandler struct { templates *templates.Manager pdfGenerator *pdf.Generator emailService *email.Service serverAddr string dataCache *cache.DataCache chatEnabled bool } // NewCVHandler creates a new CV handler func NewCVHandler(tmpl *templates.Manager, serverAddr string, emailService *email.Service, dataCache *cache.DataCache, chatEnabled bool) *CVHandler { return &CVHandler{ templates: tmpl, pdfGenerator: pdf.NewGenerator(c.TimeoutPDFGeneration), emailService: emailService, serverAddr: serverAddr, dataCache: dataCache, chatEnabled: chatEnabled, } }