name: crud_generator description: A blueprint for generating new CRUD modules (Backend & Frontend) based on the Maulana Laundry Admin pattern.
CRUD Generator Blueprint
Follow this blueprint to create a new management module (e.g., Inventory, Transactions, Customers).
1. Backend: Data Model
Create backend/models/[name].go.
package models
import (
"time"
"gorm.io/gorm"
)
type [ModelName] struct {
ID uint `gorm:"primaryKey" json:"id"`
// Add fields here
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"deleted_at"`
}
2. Backend: Handler
Create backend/handlers/[name]_handler.go. Implement the following pattern:
Get[Models](Filtered, Paginated, Unscoped for Archived)Create[Model]Update[Model]Archive[Model](Soft delete)Restore[Model](Setdeleted_attogorm.DeletedAt{})Delete[Model](Permanent)
3. Frontend: Type Definition
Create frontend/src/types/[name].ts.
export interface [ModelName] {
id: number;
// fields
created_at: string;
updated_at: string;
deleted_at: any | null;
}
4. Frontend: Service Layer
Create frontend/src/services/[name].service.ts. Use the Axios api instance.
5. Frontend: Page Component
Create frontend/src/pages/admin/[ModelName]Page.tsx.
- Copy structure from
UserPage.tsx. - Include
isArchivedhelper. - use
DataTablecomponent. - Implement
statscards at the top.
6. Registration
- Backend: Add to
database.DB.AutoMigrateinmain.go. - Backend: Register routes in
routes/routes.go. - Frontend: Add route to
App.tsx. - Frontend: Add to sidebar in
AdminLayout.tsx.