feat: Add stale process monitor, users route, landing page, archive old scripts
- Add backend stale process monitoring API (/api/stale-processes) - Add users management route - Add frontend landing page and stale process monitor UI on /scraper-tools - Move old development scripts to backend/archive/ - Update frontend build with new features 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
90
backend/archive/add-test-brands.ts
Normal file
90
backend/archive/add-test-brands.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
import { Pool } from 'pg';
|
||||
|
||||
const pool = new Pool({
|
||||
connectionString: 'postgresql://sail:password@localhost:5432/dutchie_menus'
|
||||
});
|
||||
|
||||
async function addTestBrands() {
|
||||
try {
|
||||
// Update the store slug to match the local URL
|
||||
console.log('Updating store slug...');
|
||||
await pool.query(
|
||||
`UPDATE stores
|
||||
SET slug = $1,
|
||||
dutchie_url = $2,
|
||||
updated_at = NOW()
|
||||
WHERE slug = $3`,
|
||||
[
|
||||
'curaleaf-az-48th-street',
|
||||
'https://curaleaf.com/stores/curaleaf-dispensary-48th-street',
|
||||
'curaleaf-az-48th-street-med'
|
||||
]
|
||||
);
|
||||
console.log('✓ Store slug updated\n');
|
||||
|
||||
// Get the store ID
|
||||
const storeResult = await pool.query(
|
||||
'SELECT id FROM stores WHERE slug = $1',
|
||||
['curaleaf-az-48th-street']
|
||||
);
|
||||
|
||||
if (storeResult.rows.length === 0) {
|
||||
console.log('Store not found!');
|
||||
return;
|
||||
}
|
||||
|
||||
const storeId = storeResult.rows[0].id;
|
||||
|
||||
// Sample products with brands commonly found at dispensaries
|
||||
const testProducts = [
|
||||
{ name: 'Select Elite Live Resin Cartridge - Clementine', brand: 'Select', price: 45.00, category: 'vape-pens', thc: 82.5 },
|
||||
{ name: 'Curaleaf Flower - Blue Dream', brand: 'Curaleaf', price: 35.00, category: 'flower', thc: 22.0 },
|
||||
{ name: 'Grassroots RSO Syringe', brand: 'Grassroots', price: 40.00, category: 'concentrates', thc: 75.0 },
|
||||
{ name: 'Stiiizy Pod - Skywalker OG', brand: 'Stiiizy', price: 50.00, category: 'vape-pens', thc: 85.0 },
|
||||
{ name: 'Cookies Flower - Gary Payton', brand: 'Cookies', price: 55.00, category: 'flower', thc: 28.0 },
|
||||
{ name: 'Raw Garden Live Resin - Wedding Cake', brand: 'Raw Garden', price: 48.00, category: 'concentrates', thc: 80.5 },
|
||||
{ name: 'Jeeter Pre-Roll - Zkittlez', brand: 'Jeeter', price: 12.00, category: 'pre-rolls', thc: 24.0 },
|
||||
{ name: 'Kiva Camino Gummies - Wild Cherry', brand: 'Kiva', price: 20.00, category: 'edibles', thc: 5.0 },
|
||||
{ name: 'Wyld Gummies - Raspberry', brand: 'Wyld', price: 18.00, category: 'edibles', thc: 10.0 },
|
||||
{ name: 'Papa & Barkley Releaf Balm', brand: 'Papa & Barkley', price: 45.00, category: 'topicals', thc: 3.0 },
|
||||
{ name: 'Brass Knuckles Cartridge - Gorilla Glue', brand: 'Brass Knuckles', price: 42.00, category: 'vape-pens', thc: 83.0 },
|
||||
{ name: 'Heavy Hitters Ultra Extract - Sour Diesel', brand: 'Heavy Hitters', price: 55.00, category: 'concentrates', thc: 90.0 },
|
||||
{ name: 'Cresco Liquid Live Resin - Pineapple Express', brand: 'Cresco', price: 50.00, category: 'vape-pens', thc: 87.0 },
|
||||
{ name: 'Verano Pre-Roll - Mag Landrace', brand: 'Verano', price: 15.00, category: 'pre-rolls', thc: 26.0 },
|
||||
{ name: 'Select Nano Gummies - Watermelon', brand: 'Select', price: 22.00, category: 'edibles', thc: 10.0 }
|
||||
];
|
||||
|
||||
console.log(`Inserting ${testProducts.length} test products with brands...`);
|
||||
console.log('─'.repeat(80));
|
||||
|
||||
for (const product of testProducts) {
|
||||
await pool.query(
|
||||
`INSERT INTO products (
|
||||
store_id, name, brand, price, thc_percentage,
|
||||
dutchie_url, in_stock
|
||||
)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, true)`,
|
||||
[
|
||||
storeId,
|
||||
product.name,
|
||||
product.brand,
|
||||
product.price,
|
||||
product.thc,
|
||||
`https://curaleaf.com/stores/curaleaf-dispensary-48th-street/product/${product.name.toLowerCase().replace(/\s+/g, '-')}`
|
||||
]
|
||||
);
|
||||
console.log(`✓ ${product.brand} - ${product.name}`);
|
||||
}
|
||||
|
||||
console.log('─'.repeat(80));
|
||||
console.log(`\n✅ Added ${testProducts.length} test products with brands to the store\n`);
|
||||
console.log(`View at: http://localhost:5174/stores/az/curaleaf/curaleaf-az-48th-street\n`);
|
||||
|
||||
} catch (error: any) {
|
||||
console.error('Error:', error.message);
|
||||
} finally {
|
||||
await pool.end();
|
||||
}
|
||||
}
|
||||
|
||||
addTestBrands();
|
||||
Reference in New Issue
Block a user