Skip to main content
Glama
hmumixaM

USCardForum MCP Server

by hmumixaM
users.py4.28 kB
"""Domain models for users and their activity.""" from __future__ import annotations from datetime import datetime from typing import Any from pydantic import BaseModel, Field class UserAction(BaseModel): """A user activity entry (reply, like, etc.).""" action_type: int | None = Field(None, description="Type of action") topic_id: int | None = Field(None, description="Related topic ID") post_number: int | None = Field(None, description="Related post number") title: str | None = Field(None, description="Topic title") excerpt: str | None = Field(None, description="Content preview") created_at: datetime | None = Field(None, description="When action occurred") username: str | None = Field(None, description="Username who performed action") acting_username: str | None = Field(None, description="Acting user") class Config: extra = "ignore" class Badge(BaseModel): """A single badge instance.""" id: int = Field(..., description="Badge instance ID") badge_id: int = Field(..., description="Badge type ID") name: str = Field(..., description="Badge name") description: str | None = Field(None, description="Badge description") granted_at: datetime | None = Field(None, description="When earned") badge_type_id: int | None = Field(None, description="Badge category") class Config: extra = "ignore" class BadgeInfo(BaseModel): """Badge type information.""" id: int = Field(..., description="Badge type ID") name: str = Field(..., description="Badge name") description: str | None = Field(None, description="Badge description") icon: str | None = Field(None, description="Badge icon") badge_type_id: int | None = Field(None, description="Badge category") class Config: extra = "ignore" class UserBadges(BaseModel): """User's badges with metadata.""" badges: list[Badge] = Field(default_factory=list, description="Earned badges") badge_types: list[BadgeInfo] = Field( default_factory=list, description="Badge type info" ) class Config: extra = "ignore" class UserStats(BaseModel): """User statistics.""" posts_read_count: int = Field(0, description="Posts read") topics_entered: int = Field(0, description="Topics viewed") likes_given: int = Field(0, description="Likes given") likes_received: int = Field(0, description="Likes received") days_visited: int = Field(0, description="Days visited") post_count: int = Field(0, description="Posts created") topic_count: int = Field(0, description="Topics created") class Config: extra = "ignore" class UserSummary(BaseModel): """Comprehensive user profile summary.""" user_id: int | None = Field(None, description="User ID") username: str | None = Field(None, description="Username") name: str | None = Field(None, description="Display name") created_at: datetime | None = Field(None, description="Account creation date") last_seen_at: datetime | None = Field(None, description="Last seen online") stats: UserStats | None = Field(None, description="User statistics") badges: list[Badge] = Field(default_factory=list, description="Recent badges") top_topics: list[Any] = Field(default_factory=list, description="Top topics") top_replies: list[Any] = Field(default_factory=list, description="Top replies") class Config: extra = "ignore" class FollowUser(BaseModel): """A user in a follow list.""" id: int = Field(..., description="User ID") username: str = Field(..., description="Username") name: str | None = Field(None, description="Display name") avatar_template: str | None = Field(None, description="Avatar URL template") class Config: extra = "ignore" class FollowList(BaseModel): """List of followed/following users.""" users: list[FollowUser] = Field(default_factory=list, description="User list") total_count: int = Field(0, description="Total users") class Config: extra = "ignore" class UserReactions(BaseModel): """User's post reactions.""" reactions: list[Any] = Field(default_factory=list, description="Reaction data") class Config: extra = "ignore"

Implementation Reference

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hmumixaM/uscardforum-mcp4'

If you have feedback or need assistance with the MCP directory API, please join our Discord server