import { gql } from 'mercurius-codegen'; export default gql` scalar DateTime type User { id: ID! email: String! username: String! createdAt: DateTime! updatedAt: DateTime messages: [Message!] rooms: [Room!] ownedRooms: [Room!] } type Room { id: ID! name: String! description: String isPrivate: Boolean! createdAt: DateTime! updatedAt: DateTime messages: [Message!] members: [User!] owner: User } type Message { id: ID! content: String! createdAt: DateTime! updatedAt: DateTime userId: ID! user: User roomId: ID! room: Room } type AuthPayload { token: String! user: User! } type Query { me: User users: [User!]! user(id: ID!): User rooms: [Room!]! room(id: ID!): Room messages(roomId: ID!): [Message!]! } type Mutation { register(email: String!, username: String!, password: String!): AuthPayload! login(email: String!, password: String!): AuthPayload! createRoom(name: String!, description: String, isPrivate: Boolean): Room! joinRoom(roomId: ID!): Room! leaveRoom(roomId: ID!): Boolean! sendMessage(content: String!, roomId: ID!): Message! } type Subscription { messageAdded(roomId: ID!): Message! roomAdded: Room! roomUpdated: Room! } `;