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.
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.
typescript
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.