Skip to main content

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 identifier
  • Key: Feature key (e.g., "Circles", "Tournaments")
  • Name: Human-readable name
  • Description: Feature description
  • IsEnabledInDevelopment: Enabled in development
  • IsEnabledInStaging: Enabled in staging
  • IsEnabledInProduction: Enabled in production
  • RolloutPercentage: Percentage rollout (0-100)
  • TargetUserIds: JSON array of user IDs for beta testing
  • Category: Feature category
  • IsActive: Whether flag is active
  • LastModifiedByUserId: 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 identifier
  • UserId: User who performed action
  • Action: Action performed
  • EntityType: Entity type affected
  • EntityId: Entity ID affected
  • Changes: JSON changes made
  • IpAddress: IP address
  • UserAgent: User agent
  • CreatedAt: Action timestamp

Relationships:

  • Many-to-one: User

ContentModerationResult

Purpose: AI moderation results for user-generated content.

Key Fields:

  • Id (int): Unique identifier
  • EntityType: Content type (Post, Comment, etc.)
  • EntityId: Content ID
  • ModerationService: OpenAI, AWSComprehend
  • Status: Approved, Rejected, PendingReview
  • Confidence: Moderation confidence score
  • Categories: Detected categories (JSON)
  • Reason: Moderation reason
  • ReviewedByUserId: Admin reviewer
  • ReviewedAt: Review timestamp

Relationships:

  • Many-to-one: User (reviewer)

ModerationSettings

Purpose: AI moderation configuration settings.

Key Fields:

  • Id (int): Unique identifier
  • IsEnabled: Whether moderation is enabled
  • ModerationService: Primary moderation service
  • AutoApproveThreshold: Auto-approve confidence threshold
  • AutoRejectThreshold: Auto-reject confidence threshold
  • RequireReview: Whether requires admin review

ModerationRule

Purpose: Automated moderation rules.

Key Fields:

  • Id (int): Unique identifier
  • RuleName: Rule name
  • RuleType: ContentType, Keyword, Pattern
  • RuleValue: Rule value/criteria
  • Action: Approve, Reject, FlagForReview
  • IsActive: Whether rule is active
  • Priority: Rule priority

LookupTable

Purpose: Dynamic lookup tables for extensible categories and types.

Key Fields:

  • Id (int): Unique identifier
  • Category: Category identifier (e.g., "RodPower", "GuideType")
  • Name: Display name
  • Code: Optional code/value
  • Description: Optional description
  • DisplayOrder: Display order
  • IsSystemDefined: System-defined vs user-defined
  • IsActive: Whether value is active
  • ParentLookupId: Parent lookup for hierarchies
  • UsageCount: Usage tracking

Relationships:

  • Many-to-one: LookupTable (parent)
  • One-to-many: LookupTable (children)

SystemSetting

Purpose: System-wide configuration settings.

Key Fields:

  • Id (int): Unique identifier
  • Key: Setting key
  • Value: Setting value (JSON)
  • Description: Setting description
  • IsPublic: Whether setting is public
  • UpdatedAt: Last update timestamp

SiteAnnouncement

Purpose: Site-wide announcements and notices.

Key Fields:

  • Id (int): Unique identifier
  • Title: Announcement title
  • Message: Announcement message
  • Type: Info, Warning, Error, Success
  • IsActive: Whether announcement is active
  • StartDate, EndDate: Display period
  • TargetAudience: All, Free, Basic, Pro

Theme

Purpose: Site themes and customization.

Key Fields:

  • Id (int): Unique identifier
  • Name: Theme name
  • DisplayName: Display name
  • IsDefault: Default theme flag
  • IsActive: Whether theme is active
  • ThemeData: Theme configuration (JSON)

AdminPermission

Purpose: Admin permissions and role-based access control.

Key Fields:

  • Id (int): Unique identifier
  • PermissionKey: Permission key
  • PermissionName: Permission name
  • Description: Permission description
  • Category: Permission category