package main import ( "database/sql" "fmt" "log" "net/http" "os" "truck-company/internal/handlers" "truck-company/internal/repository" "truck-company/internal/usecase" "github.com/gorilla/mux" _ "github.com/lib/pq" ) func main() { // Загружаем переменные из .env // err := godotenv.Load() // if err != nil { // log.Fatal("Ошибка загрузки .env файла") // } // Читаем переменные dbHost := os.Getenv("DB_HOST") dbPort := os.Getenv("DB_PORT") dbUser := os.Getenv("POSTGRES_USER") dbPassword := os.Getenv("POSTGRES_PASSWORD") dbName := os.Getenv("POSTGRES_DB") sslMode := os.Getenv("DB_SSLMODE") // Формируем строку подключения dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", dbHost, dbPort, dbUser, dbPassword, dbName, sslMode) db, err := sql.Open("postgres", dsn) if err != nil { log.Fatal("Ошибка подключения к БД:", err) } defer db.Close() // Проверяем соединение err = db.Ping() if err != nil { log.Fatal("БД не отвечает:", err, dsn) } log.Println("Подключение к PostgreSQL успешно!") repo := repository.NewAppRepo(db) usecase := usecase.NewUseCase(*repo) r := mux.NewRouter() h := handlers.NewTruckCompanyHandler(usecase) h.RegisterRoutes(r) // Запуск сервера log.Println("Server running on :8080") log.Fatal(http.ListenAndServe(":8080", r)) }