// Copyright 2019-present Facebook Inc. All rights reserved. // This source code is licensed under the Apache 2.0 license found // in the LICENSE file in the root directory of this source tree. package schema import ( "entgo.io/ent" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" "github.com/google/uuid" ) type NoteID string // Note holds the schema definition for the Note entity. type Note struct { ent.Schema } // Fields of the Note. func (Note) Fields() []ent.Field { return []ent.Field{ field.String("id"). GoType(NoteID("")). MaxLen(36). NotEmpty(). Unique(). Immutable(). DefaultFunc(func() NoteID { return NoteID(uuid.NewString()) }), field.String("text"). Optional(), } } // Edges of the Note. func (Note) Edges() []ent.Edge { return []ent.Edge{ edge.To("children", Note.Type). From("parent"). Unique(), } }