mirror of
https://github.com/pezkuwichain/pezkuwi-telegram-miniapp.git
synced 2026-04-22 00:47:55 +00:00
123 lines
3.7 KiB
JavaScript
123 lines
3.7 KiB
JavaScript
import { createClient } from '@supabase/supabase-js';
|
|
|
|
const supabaseUrl = process.env.SUPABASE_URL || process.env.VITE_SUPABASE_URL;
|
|
const supabaseKey = process.env.SUPABASE_SERVICE_KEY;
|
|
|
|
if (!supabaseUrl || !supabaseKey) {
|
|
console.error('Missing: SUPABASE_URL and SUPABASE_SERVICE_KEY required');
|
|
process.exit(1);
|
|
}
|
|
|
|
const supabase = createClient(supabaseUrl, supabaseKey);
|
|
|
|
async function seedAnnouncements() {
|
|
console.log('Setting up Ragihandin (tg_announcements)...\n');
|
|
|
|
// 1. Check/create admin user
|
|
console.log('1. Checking for admin user...');
|
|
let { data: adminUser } = await supabase
|
|
.from('tg_users')
|
|
.select('*')
|
|
.eq('is_admin', true)
|
|
.single();
|
|
|
|
if (!adminUser) {
|
|
console.log(' No admin user found, checking all users...');
|
|
const { data: allUsers } = await supabase
|
|
.from('tg_users')
|
|
.select('*')
|
|
.limit(5);
|
|
|
|
console.log(' Found', allUsers?.length || 0, 'users');
|
|
|
|
if (allUsers && allUsers.length > 0) {
|
|
console.log(' Users:', allUsers.map(u => `${u.first_name} (${u.id})`).join(', '));
|
|
// Use the first user as admin for now
|
|
adminUser = allUsers[0];
|
|
console.log(' Using first user as admin:', adminUser.first_name);
|
|
} else {
|
|
// Create a system admin user
|
|
console.log(' Creating system admin user...');
|
|
const { data: newAdmin, error: adminError } = await supabase
|
|
.from('tg_users')
|
|
.insert({
|
|
telegram_id: 0,
|
|
username: 'pezkuwichain_admin',
|
|
first_name: 'Pezkuwichain',
|
|
last_name: 'Admin',
|
|
is_admin: true
|
|
})
|
|
.select()
|
|
.single();
|
|
|
|
if (adminError) {
|
|
console.error(' Error creating admin:', adminError.message);
|
|
return false;
|
|
}
|
|
adminUser = newAdmin;
|
|
console.log(' Admin created:', adminUser.id);
|
|
}
|
|
} else {
|
|
console.log(' Admin found:', adminUser.first_name, adminUser.id);
|
|
}
|
|
|
|
// 2. Check existing announcements
|
|
console.log('\n2. Checking existing announcements...');
|
|
const { data: existing } = await supabase
|
|
.from('tg_announcements')
|
|
.select('*')
|
|
.limit(5);
|
|
|
|
console.log(' Found', existing?.length || 0, 'announcements');
|
|
|
|
const ourAnnouncement = existing?.find(a =>
|
|
a.title?.includes('Bi Xêr Hatî') || a.title?.includes('Daxuyaniyên Fermî')
|
|
);
|
|
|
|
if (ourAnnouncement) {
|
|
console.log('\n ✅ Admin announcement already exists:', ourAnnouncement.id);
|
|
return true;
|
|
}
|
|
|
|
// 3. Create the admin announcement
|
|
console.log('\n3. Creating admin announcement...');
|
|
|
|
const announcementContent = `Hûn bi xêr hatin rûpela daxuyaniyên fermî yên Pezkuwichain!
|
|
|
|
📢 Ev rûpela yekem û yekane ya daxuyaniyên fermî yên Pezkuwichain e.
|
|
|
|
✅ Li vir hûn dikarin:
|
|
• Nûçeyên herî dawî yên Pezkuwichain bişopînin
|
|
• Updateyên teknîkî û pêşkeftinên nû bibînin
|
|
• Daxuyaniyên fermî yên tîmê bixwînin
|
|
• Roadmap û pêşerojê bişopînin
|
|
|
|
⚠️ Tenê admin dikare li vir post bike - hemû agahdarî rast û fermî ne.
|
|
|
|
🔔 Bi me re bimînin!`;
|
|
|
|
const { data: newAnn, error: annError } = await supabase
|
|
.from('tg_announcements')
|
|
.insert({
|
|
title: '📢 Bi Xêr Hatî Rûpela Daxuyaniyên Fermî!',
|
|
content: announcementContent,
|
|
image_url: '/tokens/pezkuwichain_header.png',
|
|
link_url: 'https://pezkuwichain.io',
|
|
author_id: adminUser.id,
|
|
is_published: true
|
|
})
|
|
.select()
|
|
.single();
|
|
|
|
if (annError) {
|
|
console.error(' Error creating announcement:', annError.message);
|
|
return false;
|
|
}
|
|
|
|
console.log(' ✅ Announcement created:', newAnn.id);
|
|
console.log('\n✅ Ragihandin setup complete!');
|
|
return true;
|
|
}
|
|
|
|
seedAnnouncements().catch(console.error);
|