Commit graph

3 commits

Author SHA1 Message Date
TheFlow
6626cbc7e1 fix(submissions): resolve Mongoose populate error for hybrid BlogPost model
- BlogPost uses native MongoDB (not Mongoose), causing MissingSchemaError
- Removed all .populate('blogPostId') calls that tried to reference non-existent Mongoose model
- Manually fetch blog post data in controllers when needed
- Updated getSubmissions, getSubmissionById, getSubmissionByBlogPost, exportSubmission
- Updated SubmissionTracking static methods: getByStatus, getByPublication
- Standalone submissions (like Le Monde) now display without errors
2025-10-24 10:19:33 +13:00
TheFlow
f9ab3db284 feat(submissions): add multilingual document storage for publication packages
Extends SubmissionTracking model to support complete bilingual submission
packages with version control for multiple languages.

Schema additions:
- documents.coverLetter.versions[] - Language-versioned content
- documents.mainArticle.versions[] - With translation metadata
- documents.authorBio.versions[]
- documents.technicalBrief.versions[]

Helper methods:
- getDocument(docType, language, fallbackToDefault)
- setDocumentVersion(docType, language, content, metadata)
- getAvailableLanguages(docType)
- isPackageComplete(language)
- exportPackage(language)

Scripts:
- load-lemonde-package.js - Loads complete Le Monde submission package

Le Monde Package:
- Publication target: Rank 10, high-value French intellectual publication
- Theme: Post-Weberian organizational theory for AI age
- Content: Wittgenstein + Weber critique + indigenous data sovereignty
- Format: 187-word letter (within 150-200 requirement)
- Languages: English (original) + French (translated)
- Database ID: 68fa2abd2e6acd5691932150
- Status: Ready for submission

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 02:18:18 +13:00
TheFlow
b6d972d000 fix(lint): resolve eslint errors in submission tracking
- Add missing space after comma in SubmissionTracking model
- Replace string concatenation with template literal in blog controller

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 01:57:47 +13:00