Company: id name email industry size -------- User: id companyId email passwordHash fullName role department internalAnonId externalAnonId isActive ---------------- Session: id userId tokenHash ipAddress userAgent expiresAt -------------- Post: id userId // visible (solo mostrar segun visibilidad su internalAnonId o externalAnonId) companyId // visible content // visible postType // 'idea', 'suggestion', 'criticism', 'question' visible visibility // internal y external --> por defecto internal isModerated // invisible (no mostrar) por defecto true moderationStatus // visible por defecto '' aiSentiment // invisible (no mostrar) visible por defecto '' aiCategory // invisible (no mostrar) 'pending', 'approved', 'rejected' visible por defecto 'approved' aiPriorityScore // invisible (no mostrar) por defecto 10 likesCount // visible commentsCount // visible -------------- Comment: id postId // visible userId // visible (solo mostrar segun visibilidad su internalAnonId o externalAnonId) parentCommentId // visible content // visible isModerated // invisible (no mostrar) por defecto true moderationStatus // invisible (no mostrar) 'pending', 'approved', 'rejected' por defecto 'approved' likesCount // visible repliesCount // visible ----------- Reaction: id userId // visible (solo mostrar segun visibilidad su internalAnonId o externalAnonId) postId // visible commentId // visible reactionType // visible 'like', 'love', 'insightful', 'celebrate', 'support', 'curious' ----------------- PostAnalytics: id postId viewsCount uniqueViewers avgReadTime sentimentScore toxicityScore innovationScore feasibilityScore keywords topics -------------- IdentityReveal: id requesterUserId targetUserId postId revealReason amountPaid revealedName revealedEmail revealedDepartment paymentStatus paymentMethod transactionId