```func main() {
	//Подгружаем конфигурацию
	cfg, err := config.LoadConfig()
	if err != nil {
		log.Fatalf("[ CONFIG ] Ошибка загрузки конфигурации сервера: %v", err)
	}

	//Инициализируем zap-логер
	logger := logger.NewLogger(cfg.Logger.Mode)
	defer logger.Sync()

	//Инициализируем БД
	db := new(repository.VideoDatabase)
	dbConn, err := db.Start(*logger, *cfg)
	if err != nil {
		//Если не удалось подключиться к базе данных, то выходим из программы
		log.Fatalf("[ DB ] Ошибка подключения к базе данных: %v", err)
	}
	repository.SetDBInstance(dbConn)

	videoIntakeRouters := router.NewVideoIntake(producer, logger)
	videoIntakeRouters.RegistrationRouters(cfg.HTTP.Handler)
	logger.Debug("Роуты добавлены")

	//Запускаем сервер
	server.ApplicationStart(*cfg, logger)
}```
```package repository

import (
	"fmt"

	"github.com/cinenetwork/video-intake/cmd/config"
	"github.com/cinenetwork/video-intake/internal/models"
	"github.com/joho/godotenv"
	"go.uber.org/zap"
	"gorm.io/driver/postgres"
	"gorm.io/gorm"
)

type VideoDatabase struct {
	DB *gorm.DB
}

var dbInstance *gorm.DB

// Устанавливает глобальный экземпляр db
func SetDBInstance(db *gorm.DB) {
	dbInstance = db
}

// РЕФАКТОРИТЬ, ПОДОБНЫЕ ФУНКЦИИ ПРОСТО НЕДОПУСТИМЫ, ВСЁ ДЕЛАЕМ В ВИДЕ МЕТОДОВ К VIDEODATABASE
func CreateProcessingEntity(uuid, path, status string) error {
	if dbInstance == nil {
		return fmt.Errorf("db не инициализирован")
	}
	entity := models.ProcessingEntity{
		VideoID: uuid,
		Status:  status,
	}
	return dbInstance.Create(&entity).Error
}

// UpdateStatusByVideoID обновляет статус записи по VideoID
func (v *VideoDatabase) UpdateStatusByVideoID(videoID, newStatus string) error {
	if v.DB == nil {
		return fmt.Errorf("db не инициализирован")
	}

	result := v.DB.Model(&models.ProcessingEntity{}).
		Where("video_id = ?", videoID).
		Update("status", newStatus)

	if result.Error != nil {
		return fmt.Errorf("ошибка обновления статуса: %w", result.Error)
	}

	if result.RowsAffected == 0 {
		return fmt.Errorf("запись с VideoID %s не найдена", videoID)
	}

	return nil
}

func (v VideoDatabase) Start(logger zap.Logger, cfg config.GeneralConfig) (*VideoDatabase, error) {

	err := godotenv.Load()
	if err != nil {
		logger.Error("Не удалось загрузить .env",
			zap.Error(err))
	}
	logger.Debug(".env был успешно загружен")
	dbCfg := gorm.Config{}

	dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=%s Timezone=%s", cfg.Database.Host,
		cfg.Database.User,
		cfg.Database.Password,
		cfg.Database.DBName,
		cfg.Database.Port,
		cfg.Database.SSLMode,
		cfg.Database.TimeZone)

	db, err := gorm.Open(postgres.Open(dsn), &dbCfg)
	if err != nil {
		logger.Error("Не удалось подключиться к базе данных",
			zap.String("Host:", cfg.Database.Host),
			zap.String("Port:", cfg.Database.Port),
			zap.Error(err),
		)

		return nil, err
	}
	logger.Info("Подключение к базе данных установлено",
		zap.String("host:%s", cfg.Database.Host))

	err = db.AutoMigrate(&models.ProcessingEntity{})
	if err != nil {
		logger.Error("Не удалось подключить автомиграцию",
			zap.Error(err),
		)
	}
	logger.Debug("Автомиграция базы данных ")

	return &VideoDatabase{DB: db}, nil
}
```
С помощью библиотеки teatify(https://github.com/stretchr/testify) и использованием моков напиши тесты для функции Start.