{{/* The line below tells Intellij/GoLand to enable the autocompletion based on the *gen.Graph type. */}}
{{/* gotype: entgo.io/ent/entc/gen.Graph */}}

{{ define "has_id" }}

{{/* Add the base header for the generated file */}}
{{ $pkg := base $.Config.Package }}
{{ template "header" $ }}
import 	"github.com/google/uuid"
{{/* Loop over all nodes and implement the "HasID" interface */}}
{{ range $n := $.Nodes }}
    {{ if not $n.ID }}
        {{/* If the node doesn't have an ID field, we skip it. */}}
        {{ continue }}
    {{ end }}
    {{/* The "HasID" interface is implemented by the "ID" method. */}}
    {{ $receiver := $n.Receiver }}
    func ({{ $receiver }} *{{ $n.Name }}) GetID() {{ $n.ID.Type }} {
        return {{ $receiver }}.ID
    }
{{ end }}

{{ end }}