Added init endpoint.

This commit is contained in:
2026-01-11 18:57:47 -06:00
parent a97912188e
commit e0801b7f29
2 changed files with 81 additions and 7 deletions

View File

@ -44,17 +44,25 @@ export const AdminDataTools = () => {
const seedMutation = useMutation({
mutationFn: adminApi.seedDatabase,
onSuccess: (data) => {
console.log('Seed success:', data)
toast.success(data.message)
if (data.test_admin) {
toast.success(`Test admin created: ${data.test_admin.username} / ${data.test_admin.password}`, {
duration: 10000,
})
}
// Show what was created
const counts = data.created_counts
toast.success(`Created: ${counts.users} users, ${counts.events} events, ${counts.bets} bets`, {
duration: 5000,
})
queryClient.invalidateQueries()
refetchPreview()
},
onError: (error: any) => {
toast.error(error.response?.data?.detail || 'Seed failed')
console.error('Seed error:', error)
const message = error.response?.data?.detail || error.message || 'Seed failed'
toast.error(message)
},
})
@ -216,7 +224,7 @@ export const AdminDataTools = () => {
<input
type="number"
value={seedConfig.num_users}
onChange={(e) => setSeedConfig({ ...seedConfig, num_users: parseInt(e.target.value) || 0 })}
onChange={(e) => setSeedConfig({ ...seedConfig, num_users: Math.max(1, parseInt(e.target.value) || 1) })}
min={1}
max={100}
className="w-full px-3 py-2 border border-gray-300 rounded-lg"
@ -228,7 +236,7 @@ export const AdminDataTools = () => {
<input
type="number"
value={seedConfig.num_events}
onChange={(e) => setSeedConfig({ ...seedConfig, num_events: parseInt(e.target.value) || 0 })}
onChange={(e) => setSeedConfig({ ...seedConfig, num_events: Math.max(0, parseInt(e.target.value) || 0) })}
min={0}
max={50}
className="w-full px-3 py-2 border border-gray-300 rounded-lg"
@ -240,7 +248,7 @@ export const AdminDataTools = () => {
<input
type="number"
value={seedConfig.num_bets_per_event}
onChange={(e) => setSeedConfig({ ...seedConfig, num_bets_per_event: parseInt(e.target.value) || 0 })}
onChange={(e) => setSeedConfig({ ...seedConfig, num_bets_per_event: Math.max(0, parseInt(e.target.value) || 0) })}
min={0}
max={20}
className="w-full px-3 py-2 border border-gray-300 rounded-lg"
@ -252,7 +260,7 @@ export const AdminDataTools = () => {
<input
type="number"
value={seedConfig.starting_balance}
onChange={(e) => setSeedConfig({ ...seedConfig, starting_balance: parseInt(e.target.value) || 0 })}
onChange={(e) => setSeedConfig({ ...seedConfig, starting_balance: parseInt(e.target.value) || 100 })}
min={100}
max={10000}
className="w-full px-3 py-2 border border-gray-300 rounded-lg"