package hospital

import (
	"testing"

	"gorm.io/gorm"
)

func TestHospitalTableName(t *testing.T) {
	var m Hospital
	if got := m.TableName(); got != "no_icao_codes" {
		t.Fatalf("expected table name no_icao_codes, got %q", got)
	}
}

func TestHospitalBeforeCreate(t *testing.T) {
	t.Run("generates id when empty", func(t *testing.T) {
		m := &Hospital{}
		if err := m.BeforeCreate(&gorm.DB{}); err != nil {
			t.Fatalf("unexpected error: %v", err)
		}
		if len(m.ID) == 0 {
			t.Fatalf("expected id to be generated")
		}
	})

	t.Run("keeps existing id", func(t *testing.T) {
		existing := []byte("already-set-id")
		m := &Hospital{ID: append([]byte(nil), existing...)}
		if err := m.BeforeCreate(&gorm.DB{}); err != nil {
			t.Fatalf("unexpected error: %v", err)
		}
		if string(m.ID) != string(existing) {
			t.Fatalf("expected existing id to stay unchanged")
		}
	})
}
