Common Entities
System-wide entities for features, moderation, audit logging, and configuration.
FeatureFlag
Purpose: Feature flags for controlling feature availability across environments.
Key Fields:
Id(int): Unique identifierKey: Feature key (e.g., "Circles", "Tournaments")Name: Human-readable nameDescription: Feature descriptionIsEnabledInDevelopment: Enabled in developmentIsEnabledInStaging: Enabled in stagingIsEnabledInProduction: Enabled in productionRolloutPercentage: Percentage rollout (0-100)TargetUserIds: JSON array of user IDs for beta testingCategory: Feature categoryIsActive: Whether flag is activeLastModifiedByUserId: Last modifier
Relationships:
- Many-to-one: User (last modifier)
Usage Patterns:
// Check feature flag
var isEnabled = await _featureFlagService.IsEnabledAsync("Circles");
// Get all active flags
var flags = context.FeatureFlags
.Where(ff => ff.IsActive)
.ToList();
AuditLog
Purpose: Audit logging for admin actions and system changes.
Key Fields:
Id(int): Unique identifierUserId: User who performed actionAction: Action performedEntityType: Entity type affectedEntityId: Entity ID affectedChanges: JSON changes madeIpAddress: IP addressUserAgent: User agentCreatedAt: Action timestamp
Relationships:
- Many-to-one: User
ContentModerationResult
Purpose: AI moderation results for user-generated content.
Key Fields:
Id(int): Unique identifierEntityType: Content type (Post, Comment, etc.)EntityId: Content IDModerationService: OpenAI, AWSComprehendStatus: Approved, Rejected, PendingReviewConfidence: Moderation confidence scoreCategories: Detected categories (JSON)Reason: Moderation reasonReviewedByUserId: Admin reviewerReviewedAt: Review timestamp
Relationships:
- Many-to-one: User (reviewer)
ModerationSettings
Purpose: AI moderation configuration settings.
Key Fields:
Id(int): Unique identifierIsEnabled: Whether moderation is enabledModerationService: Primary moderation serviceAutoApproveThreshold: Auto-approve confidence thresholdAutoRejectThreshold: Auto-reject confidence thresholdRequireReview: Whether requires admin review
ModerationRule
Purpose: Automated moderation rules.
Key Fields:
Id(int): Unique identifierRuleName: Rule nameRuleType: ContentType, Keyword, PatternRuleValue: Rule value/criteriaAction: Approve, Reject, FlagForReviewIsActive: Whether rule is activePriority: Rule priority
LookupTable
Purpose: Dynamic lookup tables for extensible categories and types.
Key Fields:
Id(int): Unique identifierCategory: Category identifier (e.g., "RodPower", "GuideType")Name: Display nameCode: Optional code/valueDescription: Optional descriptionDisplayOrder: Display orderIsSystemDefined: System-defined vs user-definedIsActive: Whether value is activeParentLookupId: Parent lookup for hierarchiesUsageCount: Usage tracking
Relationships:
- Many-to-one: LookupTable (parent)
- One-to-many: LookupTable (children)
SystemSetting
Purpose: System-wide configuration settings.
Key Fields:
Id(int): Unique identifierKey: Setting keyValue: Setting value (JSON)Description: Setting descriptionIsPublic: Whether setting is publicUpdatedAt: Last update timestamp
SiteAnnouncement
Purpose: Site-wide announcements and notices.
Key Fields:
Id(int): Unique identifierTitle: Announcement titleMessage: Announcement messageType: Info, Warning, Error, SuccessIsActive: Whether announcement is activeStartDate,EndDate: Display periodTargetAudience: All, Free, Basic, Pro
Theme
Purpose: Site themes and customization.
Key Fields:
Id(int): Unique identifierName: Theme nameDisplayName: Display nameIsDefault: Default theme flagIsActive: Whether theme is activeThemeData: Theme configuration (JSON)
AdminPermission
Purpose: Admin permissions and role-based access control.
Key Fields:
Id(int): Unique identifierPermissionKey: Permission keyPermissionName: Permission nameDescription: Permission descriptionCategory: Permission category
Related Documentation
- Feature Flags - Feature flag system
- AI Moderation - Content moderation
- Dynamic Enums - Dynamic enum system
- Future Proofing - Extensibility patterns