fix: widen consignments_status_check to allow Collected_By_Miler and Cancelled
This commit is contained in:
@@ -79,5 +79,20 @@ func Migrate(db *gorm.DB) error {
|
|||||||
utils.Info("✅ tripsheets_status_check constraint includes Ready")
|
utils.Info("✅ tripsheets_status_check constraint includes Ready")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The consignments.status CHECK constraint also predates this codebase (not
|
||||||
|
// derived from a gorm tag) and was missing two values the code actually
|
||||||
|
// writes: Collected_By_Miler — the hyperlocal two-step intermediate state,
|
||||||
|
// which a pickup-complete writes when MILER_COLLECTED_STATE_ENABLED is on —
|
||||||
|
// and Cancelled, which the admin console sets via PUT /consignments/:id/status.
|
||||||
|
// Without them the INSERT/UPDATE fails with a 23514 check violation. Widen it
|
||||||
|
// to the full set of constants.Consignment* statuses plus Cancelled.
|
||||||
|
db.Exec(`ALTER TABLE consignments DROP CONSTRAINT IF EXISTS consignments_status_check`)
|
||||||
|
if res := db.Exec(`ALTER TABLE consignments ADD CONSTRAINT consignments_status_check
|
||||||
|
CHECK (status::text = ANY (ARRAY['Created','Inwarded_at_Hub','Collected_By_Miler','Tripsheet_Loaded','In_Transit','Out_for_Delivery','Delivered','RTO_Initiated','Returned_to_Sender','Missing','Damaged','Cancelled']::text[]))`); res.Error != nil {
|
||||||
|
utils.Error("❌ Failed to widen consignments_status_check constraint", "error", res.Error)
|
||||||
|
} else {
|
||||||
|
utils.Info("✅ consignments_status_check constraint includes Collected_By_Miler")
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user