2025-12-09 14:15:23 +07:00
|
|
|
import { useQuery } from '@tanstack/react-query';
|
2026-04-05 17:08:42 +07:00
|
|
|
import { api } from '../../api/index';
|
2025-12-09 14:15:23 +07:00
|
|
|
|
|
|
|
|
export const winnerKeys = {
|
|
|
|
|
all: ['winners'] as const,
|
|
|
|
|
lists: () => [...winnerKeys.all, 'list'] as const,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
interface Team {
|
2026-04-05 17:08:42 +07:00
|
|
|
id: string; name: string; description: string; city: string; visibility: string;
|
|
|
|
|
logo: string; banner: string; leader_id: string; created_at: string; updated_at: string;
|
2025-12-09 14:15:23 +07:00
|
|
|
}
|
|
|
|
|
interface Winner {
|
2026-04-05 17:08:42 +07:00
|
|
|
id: string; team_id: string; team: Team; rank: number; prize: string;
|
|
|
|
|
announced_at: string; created_at: string; updated_at: string;
|
2025-12-09 14:15:23 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const useWinners = () => {
|
2026-04-05 17:08:42 +07:00
|
|
|
return useQuery({
|
2025-12-09 14:15:23 +07:00
|
|
|
queryKey: winnerKeys.lists(),
|
|
|
|
|
queryFn: async () => {
|
2026-04-05 17:08:42 +07:00
|
|
|
const response = await api.get<{ data: Winner[] }>('/v1/hackathon/winners');
|
2025-12-09 14:15:23 +07:00
|
|
|
return response.data;
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
};
|