package controllers import ( "git.golem15.com/golem15/sm-journal-plugin/models" "git.golem15.com/golem15/summercms/modules/backpack" "git.golem15.com/golem15/summercms/modules/cabana" "git.golem15.com/golem15/summercms/modules/pact" ) const ( // CategoriesControllerID is the cabana controller id of the Categories screen. CategoriesControllerID = "golem15.journal.categories" // PermissionAccessCategories is Categories::$requiredPermissions. PermissionAccessCategories = "golem15.journal.access_categories" ) type categoriesAdminController struct { app func() *backpack.App } func (categoriesAdminController) ID() string { return CategoriesControllerID } func (categoriesAdminController) ModelName() string { return `Golem15\Journal\Models\Category` } func (categoriesAdminController) ConfigDir() string { return "controllers/categories" } func (categoriesAdminController) RequiredPermissions() []string { return []string{PermissionAccessCategories} } func (categoriesAdminController) NewRecord() any { return &models.Category{} } func (categoriesAdminController) AdminFieldRelations() []cabana.FieldRelationContract { return []cabana.FieldRelationContract{{ Field: "parent", Kind: "belongsTo", NewRelated: func() any { return &models.Category{} }, ForeignKey: "parent_id", LabelColumn: "name", }} } var ( _ pact.AdminController = categoriesAdminController{} _ pact.AdminPermissioned = categoriesAdminController{} _ pact.AdminRecordSource = categoriesAdminController{} _ cabana.FieldRelationProvider = categoriesAdminController{} )