Add MCU prefix for MCU registrations

This commit is contained in:
2026-09-10 15:06:48 +07:00
parent d42d97d066
commit 94c3dd1a70
2 changed files with 26 additions and 1 deletions

View File

@@ -144,7 +144,7 @@ func registerPatientInTransaction(ctx context.Context, tx *sql.Tx, params Regist
now := time.Now().In(jakarta)
nowText := now.Format("2006-01-02 15:04:05")
regDate := params.RegistrationDate.Format("2006-01-02")
prefix := "P" + params.RegistrationDate.Format("0601")
prefix := registrationIDPrefix(params.RegistrationType, params.RegistrationDate)
regID, err := nextRegistrationID(ctx, tx, prefix)
if err != nil {
return RegistrationOutcome{}, err
@@ -489,6 +489,14 @@ func nextRegistrationID(ctx context.Context, tx *sql.Tx, prefix string) (string,
return fmt.Sprintf("%s%05d", prefix, number+1), nil
}
func registrationIDPrefix(registrationType int64, registrationDate time.Time) string {
prefix := "P"
if registrationType == 2 {
prefix = "MCU"
}
return prefix + registrationDate.Format("0601")
}
func registrationOutcome(statusCode int, success bool, status, message string, data any) RegistrationOutcome {
return RegistrationOutcome{HTTPStatus: statusCode, Success: success, Status: status, Message: message, Data: data}
}

View File

@@ -0,0 +1,17 @@
package repository
import (
"testing"
"time"
)
func TestRegistrationIDPrefix(t *testing.T) {
registrationDate := time.Date(2026, time.September, 7, 0, 0, 0, 0, time.UTC)
if got, want := registrationIDPrefix(2, registrationDate), "MCU2609"; got != want {
t.Fatalf("MCU prefix = %q; want %q", got, want)
}
if got, want := registrationIDPrefix(1, registrationDate), "P2609"; got != want {
t.Fatalf("regular prefix = %q; want %q", got, want)
}
}