scalar DateTime """ Represents a feed subscription in the system """ type Feed { """ Unique identifier for the feed """ id: ID! """ URL of the RSS/Atom feed """ url: String! """ Title of the feed (extracted from feed metadata) """ title: String! """ Timestamp when the feed was last fetched """ fetchedAt: DateTime! """ Whether the user is currently subscribed to this feed """ isSubscribed: Boolean! """ Articles belonging to this feed """ articles: [Article!]! } """ Represents an individual article/post from a feed """ type Article { """ Unique identifier for the article """ id: ID! """ ID of the feed this article belongs to """ feedId: ID! """ GUID from the RSS/Atom feed (unique identifier from feed) """ guid: String! """ Title of the article """ title: String! """ URL/link to the original article """ url: String! """ Whether the article has been marked as read """ isRead: Boolean! """ The feed this article belongs to """ feed: Feed! } """ Represents a user in the system """ type User { """ Unique identifier for the user """ id: ID! """ Username of the user """ username: String! } """ Authentication payload returned from login mutation """ type AuthPayload { """ The authenticated user """ user: User! } """ Root query type for reading data """ type Query { """ Get all feeds with their metadata """ feeds: [Feed!]! """ Get all unread articles across all feeds """ unreadArticles: [Article!]! """ Get all read articles across all feeds """ readArticles: [Article!]! """ Get a specific feed by ID """ feed(id: ID!): Feed """ Get a specific article by ID """ article(id: ID!): Article """ Get the currently authenticated user """ me: User } """ Root mutation type for modifying data """ type Mutation { """ Add a new feed subscription """ addFeed(url: String!): Feed! """ Unsubscribe from a feed (preserves feed and article data) """ unsubscribeFeed(id: ID!): Boolean! """ Mark an article as read """ markArticleRead(id: ID!): Article! """ Mark an article as unread """ markArticleUnread(id: ID!): Article! """ Mark all articles in a feed as read """ markFeedRead(id: ID!): Feed! """ Mark all articles in a feed as unread """ markFeedUnread(id: ID!): Feed! """ Login with username and password. Creates a session cookie. """ login(username: String!, password: String!): AuthPayload! """ Logout the current user and destroy the session """ logout: Boolean! }