package config import ( "gelvin/app/application" "gelvin/app/controllers" "gelvin/app/models" ) type Config struct { app *application.Application controller *controllers.Controller model *models.Model } func (c Config) App() *application.Application { return c.app } func (c Config) Controller() *controllers.Controller { return c.controller } func (c Config) Model() *models.Model { return c.model } func Configure() *Config { app := configureApp() controller := controllers.NewController(app) configureDb(app) configureRoutes(app, controller) return &Config{app, controller, controller.Model()} }