Transform qualifying scenarios into marketing-ready use cases with: - AI-generated titles, descriptions, ROI estimates, business value - Persona/industry/category taxonomy for targeting - Browseable feed with filtering and ranking - SEO-optimized case study pages - Daily cron job for generation and ranking Database: - Add Persona, Industry, Category lookup tables - Add UseCase model with marketing content fields - Add junction tables for personas/industries/categories - Add SocialProof model for cached metrics API: - GET /api/use-cases - Global directory with filtering - GET /api/use-cases/[id] - Individual use case details - GET /api/public/users/[username]/collections/[slug]/use-cases - POST /api/cron/use-cases - Nightly generation job Frontend: - /use-cases - Global feed with persona dropdown - /use-cases/[slug] - SEO case study page - /[username]/collections/[slug]/use-cases - Collection feed - UseCasesFeed component - Sortable table component - UseCaseCaseStudy component - Full case study layout
31 lines
894 B
JavaScript
31 lines
894 B
JavaScript
import { PrismaClient } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
async function main() {
|
|
const tool = await prisma.tool.findUnique({
|
|
where: { npmPackageName: '@tpmjs/text-transformer' },
|
|
select: {
|
|
npmPackageName: true,
|
|
npmVersion: true,
|
|
npmReadme: true,
|
|
},
|
|
});
|
|
|
|
if (tool) {
|
|
console.log('Tool found:', tool.npmPackageName, tool.npmVersion);
|
|
console.log('Has README:', tool.npmReadme ? `Yes (${tool.npmReadme.length} chars)` : 'No');
|
|
} else {
|
|
console.log('Tool @tpmjs/text-transformer not found in database');
|
|
|
|
// List all tools to see what's available
|
|
const allTools = await prisma.tool.findMany({
|
|
select: { npmPackageName: true },
|
|
take: 10,
|
|
});
|
|
console.log('\nAvailable tools:');
|
|
allTools.forEach((t) => console.log(' -', t.npmPackageName));
|
|
}
|
|
}
|
|
|
|
main().finally(() => prisma.$disconnect());
|