package repo import ( "github.com/google/uuid" "github.com/hay-kot/homebox/backend/pkgs/set" ) // HasID is an interface to entities that have an ID uuid.UUID field and a GetID() method. // This interface is fulfilled by all entities generated by entgo.io/ent via a custom template type HasID interface { GetID() uuid.UUID } func newIDSet[T HasID](entities []T) set.Set[uuid.UUID] { uuids := make([]uuid.UUID, 0, len(entities)) for _, e := range entities { uuids = append(uuids, e.GetID()) } return set.New(uuids...) }