// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.

package model

import (
	"time"

	"github.com/google/uuid"
)

type Comment struct {
	ID         int64              `json:"id"`
	AuthorID   uuid.UUID          `json:"authorID"`
	PostID     int64              `json:"postID"`
	ParentID   *int64             `json:"parentID,omitempty"`
	Text       string             `json:"text"`
	CreateDate time.Time          `json:"createDate"`
	Replies    *CommentConnection `json:"replies,omitempty"`
}

type CommentConnection struct {
	Edges    []*CommentEdge `json:"edges"`
	PageInfo *PageInfo      `json:"pageInfo"`
}

type CommentEdge struct {
	Node   *Comment `json:"node"`
	Cursor string   `json:"cursor"`
}

type Mutation struct {
}

type NewComment struct {
	AuthorID uuid.UUID `json:"authorID"`
	PostID   int64     `json:"postID"`
	ParentID *int64    `json:"parentID,omitempty"`
	Text     string    `json:"text"`
}

type NewPost struct {
	AuthorID        uuid.UUID `json:"authorID"`
	Title           string    `json:"title"`
	Text            string    `json:"text"`
	CommentsEnabled bool      `json:"commentsEnabled"`
}

type PageInfo struct {
	EndCursor   *string `json:"endCursor,omitempty"`
	HasNextPage bool    `json:"hasNextPage"`
}

type Post struct {
	ID              int64              `json:"id"`
	AuthorID        uuid.UUID          `json:"authorID"`
	Title           string             `json:"title"`
	Text            string             `json:"text"`
	CommentsEnabled bool               `json:"commentsEnabled"`
	Comments        *CommentConnection `json:"comments,omitempty"`
	CreateDate      time.Time          `json:"createDate"`
}

type Query struct {
}

type Subscription struct {
}
