type User {
id: ID!
username: String!
email: String!
profile: UserProfile
posts: [Post!]!
createdAt: String!
updatedAt: String!
}
type UserProfile {
id: ID!
userId: ID!
firstName: String
lastName: String
avatar: String
bio: String
website: String
}
type Post {
id: ID!
title: String!
content: String!
published: Boolean!
authorId: ID!
author: User!
tags: [Tag!]!
comments: [Comment!]!
createdAt: String!
updatedAt: String!
}
type Comment {
id: ID!
content: String!
postId: ID!
authorId: ID!
author: User!
createdAt: String!
updatedAt: String!
}
type Tag {
id: ID!
name: String!
color: String
posts: [Post!]!
}
enum UserRole {
ADMIN
EDITOR
AUTHOR
USER
}
enum PostStatus {
DRAFT
PUBLISHED
ARCHIVED
}