package storage import ( "database/sql" "log" "synlotto-website/config" "synlotto-website/logging" _ "modernc.org/sqlite" ) func InitDB(filepath string) *sql.DB { var err error cfg := config.Get() db, err := sql.Open("sqlite", filepath) if err != nil { log.Fatal("❌ Failed to open DB:", err) } schemas := []string{ SchemaUsers, SchemaThunderballResults, SchemaThunderballPrizes, SchemaLottoResults, SchemaMyTickets, SchemaUsersMessages, SchemaUsersNotifications, SchemaAuditLog, SchemaLogTicketMatching, SchemaAdminAccessLog, SchemaNewAuditLog, SchemaSyndicates, SchemaSyndicateMembers, SchemaSyndicateInvites, SchemaSyndicateInviteTokens, } if cfg == nil { logging.Error("❌ config is nil — did config.Init() run before InitDB?") panic("config not ready") } for _, stmt := range schemas { if _, err := db.Exec(stmt); err != nil { log.Fatalf("❌ Failed to apply schema: %v", err) } } return db }