package main import ( "log" "os" "git.vakhrushev.me/av/transcriber/database" "git.vakhrushev.me/av/transcriber/handlers" "github.com/gin-gonic/gin" ) func main() { // Создаем директории если они не существуют if err := os.MkdirAll("data/files", 0755); err != nil { log.Fatal("Failed to create data/files directory:", err) } // Инициализируем базу данных db, err := database.New("data/transcriber.db") if err != nil { log.Fatal("Failed to initialize database:", err) } defer db.Close() // Запускаем миграции if err := db.RunMigrations("migrations"); err != nil { log.Fatal("Failed to run migrations:", err) } // Создаем Gin роутер r := gin.Default() // Инициализируем обработчики transcribeHandler := handlers.NewTranscribeHandler(db) // Настраиваем роуты api := r.Group("/api") { api.POST("/transcribe", transcribeHandler.UploadAndTranscribe) api.GET("/transcribe/:id", transcribeHandler.GetJobStatus) } // Добавляем middleware для обработки больших файлов r.MaxMultipartMemory = 32 << 20 // 32 MiB // Добавляем базовый роут для проверки работоспособности r.GET("/health", func(c *gin.Context) { c.JSON(200, gin.H{ "status": "ok", "message": "Transcriber service is running", }) }) log.Println("Starting server on :8080") if err := r.Run(":8080"); err != nil { log.Fatal("Failed to start server:", err) } }