package middleware import ( "context" "net/http" "management/internal/erpserver/model/dto" v1 "management/internal/erpserver/service/v1" "management/internal/pkg/session" ) type Middleware interface { Audit(next http.Handler) http.Handler NoSurf(next http.Handler) http.Handler LoadSession(next http.Handler) http.Handler Authorize(next http.Handler) http.Handler AuthUser(ctx context.Context) dto.AuthorizeUser IsAuth(ctx context.Context) bool RefreshToken(ctx context.Context) bool Destroy(ctx context.Context) error } type middleware struct { session session.Session menuService v1.MenuService auditLogService v1.AuditLogService } func New(session session.Session, menuService v1.MenuService, auditLogService v1.AuditLogService) Middleware { return &middleware{ session: session, menuService: menuService, auditLogService: auditLogService, } }