feat: Add configurable draw cycles, improve UX
Backend: - Add configurable draw cycle settings (minutes/hourly/daily/weekly/custom) - Add CYCLE_TYPE, CYCLE_INTERVAL_*, CYCLE_DAILY_TIME, CYCLE_WEEKLY_* env vars - Add SALES_CLOSE_BEFORE_DRAW_MINUTES and CYCLES_TO_GENERATE_AHEAD - Fix SQLite parameter issue in scheduler Frontend: - Add 'Save This Link' section with copy button on ticket status page - Improve draw animation to show immediately when draw starts - Show 'Waiting for next round...' instead of 'Drawing Now!' after draw - Hide Buy Tickets button when waiting for next round - Skip draw animation if no tickets were sold - Keep winner screen open longer (15s) for next cycle to load - Auto-refresh to next lottery cycle after draw Telegram Bot: - Various improvements and fixes
This commit is contained in:
@@ -143,3 +143,4 @@ class ApiClient {
|
||||
export const apiClient = new ApiClient();
|
||||
export default apiClient;
|
||||
|
||||
|
||||
|
||||
@@ -222,3 +222,4 @@ class GroupStateManager {
|
||||
export const groupStateManager = new GroupStateManager();
|
||||
export default groupStateManager;
|
||||
|
||||
|
||||
|
||||
@@ -80,3 +80,4 @@ export const logPaymentEvent = (
|
||||
|
||||
export default logger;
|
||||
|
||||
|
||||
|
||||
@@ -25,3 +25,4 @@ export async function generateQRCode(data: string): Promise<Buffer> {
|
||||
|
||||
export default { generateQRCode };
|
||||
|
||||
|
||||
|
||||
@@ -260,3 +260,4 @@ class StateManager {
|
||||
export const stateManager = new StateManager();
|
||||
export default stateManager;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user