package system import ( "net/http" v1 "management/internal/erpserver/service/v1" "management/internal/pkg/middleware" "management/internal/pkg/tpl" ) type homeHandler struct { render tpl.Renderer mi middleware.Middleware usersvc v1.UserService loginLogsvc v1.LoginLogService } func NewHomeHandler(render tpl.Renderer, mi middleware.Middleware, usersvc v1.UserService, loginLogsvc v1.LoginLogService) *homeHandler { return &homeHandler{ render: render, mi: mi, usersvc: usersvc, loginLogsvc: loginLogsvc, } } func (h *homeHandler) Home(w http.ResponseWriter, r *http.Request) { h.render.HTML(w, r, "home/home.tmpl", nil) } func (h *homeHandler) Dashboard(w http.ResponseWriter, r *http.Request) { ctx := r.Context() auth := h.mi.AuthUser(ctx) user, _ := h.usersvc.Get(ctx, auth.ID) t := h.loginLogsvc.LoginLatestTime(ctx, auth.Email) c := h.loginLogsvc.LoginCount(ctx, auth.Email) h.render.HTML(w, r, "home/dashboard.tmpl", map[string]any{ "Auth": auth, "User": user, "LastLoginTime": t, "LoginCount": c, }) }