first commit

This commit is contained in:
2026-01-17 14:17:42 +05:30
commit 0f194eb9e7
328 changed files with 73544 additions and 0 deletions

View File

@@ -0,0 +1,128 @@
import { NextRequest, NextResponse } from 'next/server'
import { auth } from '@/auth'
import { prisma } from '@/lib/prisma'
import { clearSettingsCache } from '@/lib/settings'
export async function GET() {
try {
const session = await auth()
if (!session?.user?.id || session.user.role !== 'ADMIN') {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
}
// Get or create system settings
let settings = await prisma.systemSettings.findFirst()
if (!settings) {
// Create default settings if none exist
settings = await prisma.systemSettings.create({
data: {
siteName: 'Padmaaja Rasooi',
siteDescription: 'Premium Rice Products & Quality Grains',
supportEmail: 'support@padmaajarasooi.com',
minimumPayout: 100,
enableReferrals: true,
enableCommissions: true,
maintenanceMode: false,
allowRegistration: true
}
})
}
return NextResponse.json({
siteName: settings.siteName,
siteDescription: settings.siteDescription,
supportEmail: settings.supportEmail,
minimumPayout: settings.minimumPayout,
enableReferrals: settings.enableReferrals,
enableCommissions: settings.enableCommissions,
maintenanceMode: settings.maintenanceMode,
allowRegistration: settings.allowRegistration
})
} catch (error) {
console.error('Error fetching system settings:', error)
return NextResponse.json(
{ error: 'Failed to fetch system settings' },
{ status: 500 }
)
}
}
export async function PUT(request: NextRequest) {
try {
const session = await auth()
if (!session?.user?.id || session.user.role !== 'ADMIN') {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
}
const {
siteName,
siteDescription,
supportEmail,
minimumPayout,
enableReferrals,
enableCommissions,
maintenanceMode,
allowRegistration
} = await request.json()
// Get or create system settings
let settings = await prisma.systemSettings.findFirst()
if (!settings) {
// Create new settings
settings = await prisma.systemSettings.create({
data: {
siteName,
siteDescription,
supportEmail,
minimumPayout,
enableReferrals,
enableCommissions,
maintenanceMode,
allowRegistration
}
})
} else {
// Update existing settings
settings = await prisma.systemSettings.update({
where: { id: settings.id },
data: {
siteName,
siteDescription,
supportEmail,
minimumPayout,
enableReferrals,
enableCommissions,
maintenanceMode,
allowRegistration
}
})
}
// Clear the settings cache so new values are fetched
clearSettingsCache()
return NextResponse.json({
success: true,
settings: {
siteName: settings.siteName,
siteDescription: settings.siteDescription,
supportEmail: settings.supportEmail,
minimumPayout: settings.minimumPayout,
enableReferrals: settings.enableReferrals,
enableCommissions: settings.enableCommissions,
maintenanceMode: settings.maintenanceMode,
allowRegistration: settings.allowRegistration
}
})
} catch (error) {
console.error('Error updating system settings:', error)
return NextResponse.json(
{ error: 'Failed to update system settings' },
{ status: 500 }
)
}
}