├── .cursor └── rules │ ├── command-system-events.mdc │ ├── container-events.mdc │ ├── conventions-go.mdc │ ├── project-management-events.mdc │ ├── testing-events-go.mdc │ └── troubleshooting-events.mdc ├── .fcai ├── README.md ├── commands.md ├── features │ ├── video-processing │ │ ├── completed │ │ │ ├── 001-video-entity │ │ │ │ ├── 001-video-entity.md │ │ │ │ └── 001-video-entity.result.md │ │ │ ├── 002-video-repository │ │ │ │ ├── 002-video-repository.md │ │ │ │ └── 002-video-repository.result.md │ │ │ ├── 003-video-repository-postgres │ │ │ │ ├── 003-video-repository-postgres.md │ │ │ │ └── 003-video-repository-postgres_result.md │ │ │ ├── 004-database-migrations │ │ │ │ ├── 004-database-migrations.md │ │ │ │ └── 004-database-migrations_result.md │ │ │ ├── 005-ffmpeg-service │ │ │ │ ├── 005-ffmpeg-service.md │ │ │ │ └── 005-ffmpeg-service_result.md │ │ │ └── 006-video-converter-service │ │ │ │ ├── 006-video-converter-service.md │ │ │ │ └── 006-video-converter-service_result.md │ │ └── documentation │ │ │ └── overview.md │ └── worker-pool │ │ └── completed │ │ └── 001-worker-pool-update │ │ ├── 001-worker-pool-update.md │ │ └── 001-worker-pool-update_result.md ├── project │ ├── architecture │ │ ├── docker.md │ │ ├── env-vars.md │ │ ├── ffmpeg-video-converter.md │ │ ├── go-libs.md │ │ ├── layered-architecture.md │ │ └── overview.md │ └── documentation │ │ └── context.md ├── state.md └── structure.md ├── .gitignore ├── Dockerfile ├── cmd ├── app │ └── main.go └── server │ └── main.go ├── config └── config.go ├── docker-compose.yaml ├── go.mod ├── go.sum ├── internal ├── application │ └── service │ │ ├── ffmpeg_service.go │ │ ├── ffmpeg_service_test.go │ │ ├── video_converter.go │ │ └── video_converter_test.go ├── domain │ ├── entity │ │ ├── video.go │ │ └── video_test.go │ └── repository │ │ └── video_repository.go └── infra │ └── database │ ├── db.go │ ├── migrations │ ├── 000001_create_videos_table.down.sql │ └── 000001_create_videos_table.up.sql │ └── repository │ ├── video_repository.go │ └── video_repository_test.go ├── main.go └── pkg └── workerpool ├── doc.go ├── errors.go ├── workerpool.go └── workerpool_test.go /.cursor/rules/command-system-events.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.cursor/rules/command-system-events.mdc -------------------------------------------------------------------------------- /.cursor/rules/container-events.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.cursor/rules/container-events.mdc -------------------------------------------------------------------------------- /.cursor/rules/conventions-go.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.cursor/rules/conventions-go.mdc -------------------------------------------------------------------------------- /.cursor/rules/project-management-events.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.cursor/rules/project-management-events.mdc -------------------------------------------------------------------------------- /.cursor/rules/testing-events-go.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.cursor/rules/testing-events-go.mdc -------------------------------------------------------------------------------- /.cursor/rules/troubleshooting-events.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.cursor/rules/troubleshooting-events.mdc -------------------------------------------------------------------------------- /.fcai/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/README.md -------------------------------------------------------------------------------- /.fcai/commands.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/commands.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/001-video-entity/001-video-entity.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/001-video-entity/001-video-entity.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/001-video-entity/001-video-entity.result.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/001-video-entity/001-video-entity.result.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/002-video-repository/002-video-repository.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/002-video-repository/002-video-repository.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/002-video-repository/002-video-repository.result.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/002-video-repository/002-video-repository.result.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/003-video-repository-postgres/003-video-repository-postgres.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/003-video-repository-postgres/003-video-repository-postgres.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/003-video-repository-postgres/003-video-repository-postgres_result.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/003-video-repository-postgres/003-video-repository-postgres_result.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/004-database-migrations/004-database-migrations.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/004-database-migrations/004-database-migrations.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/004-database-migrations/004-database-migrations_result.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/004-database-migrations/004-database-migrations_result.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/005-ffmpeg-service/005-ffmpeg-service.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/005-ffmpeg-service/005-ffmpeg-service.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/005-ffmpeg-service/005-ffmpeg-service_result.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/005-ffmpeg-service/005-ffmpeg-service_result.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/006-video-converter-service/006-video-converter-service.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/006-video-converter-service/006-video-converter-service.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/completed/006-video-converter-service/006-video-converter-service_result.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/completed/006-video-converter-service/006-video-converter-service_result.md -------------------------------------------------------------------------------- /.fcai/features/video-processing/documentation/overview.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/video-processing/documentation/overview.md -------------------------------------------------------------------------------- /.fcai/features/worker-pool/completed/001-worker-pool-update/001-worker-pool-update.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/worker-pool/completed/001-worker-pool-update/001-worker-pool-update.md -------------------------------------------------------------------------------- /.fcai/features/worker-pool/completed/001-worker-pool-update/001-worker-pool-update_result.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/features/worker-pool/completed/001-worker-pool-update/001-worker-pool-update_result.md -------------------------------------------------------------------------------- /.fcai/project/architecture/docker.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/project/architecture/docker.md -------------------------------------------------------------------------------- /.fcai/project/architecture/env-vars.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/project/architecture/env-vars.md -------------------------------------------------------------------------------- /.fcai/project/architecture/ffmpeg-video-converter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/project/architecture/ffmpeg-video-converter.md -------------------------------------------------------------------------------- /.fcai/project/architecture/go-libs.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/project/architecture/go-libs.md -------------------------------------------------------------------------------- /.fcai/project/architecture/layered-architecture.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/project/architecture/layered-architecture.md -------------------------------------------------------------------------------- /.fcai/project/architecture/overview.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/project/architecture/overview.md -------------------------------------------------------------------------------- /.fcai/project/documentation/context.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/project/documentation/context.md -------------------------------------------------------------------------------- /.fcai/state.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/state.md -------------------------------------------------------------------------------- /.fcai/structure.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.fcai/structure.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/Dockerfile -------------------------------------------------------------------------------- /cmd/app/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/cmd/app/main.go -------------------------------------------------------------------------------- /cmd/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/cmd/server/main.go -------------------------------------------------------------------------------- /config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/config/config.go -------------------------------------------------------------------------------- /docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/docker-compose.yaml -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/go.sum -------------------------------------------------------------------------------- /internal/application/service/ffmpeg_service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/application/service/ffmpeg_service.go -------------------------------------------------------------------------------- /internal/application/service/ffmpeg_service_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/application/service/ffmpeg_service_test.go -------------------------------------------------------------------------------- /internal/application/service/video_converter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/application/service/video_converter.go -------------------------------------------------------------------------------- /internal/application/service/video_converter_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/application/service/video_converter_test.go -------------------------------------------------------------------------------- /internal/domain/entity/video.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/domain/entity/video.go -------------------------------------------------------------------------------- /internal/domain/entity/video_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/domain/entity/video_test.go -------------------------------------------------------------------------------- /internal/domain/repository/video_repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/domain/repository/video_repository.go -------------------------------------------------------------------------------- /internal/infra/database/db.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/infra/database/db.go -------------------------------------------------------------------------------- /internal/infra/database/migrations/000001_create_videos_table.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS videos; -------------------------------------------------------------------------------- /internal/infra/database/migrations/000001_create_videos_table.up.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/infra/database/migrations/000001_create_videos_table.up.sql -------------------------------------------------------------------------------- /internal/infra/database/repository/video_repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/infra/database/repository/video_repository.go -------------------------------------------------------------------------------- /internal/infra/database/repository/video_repository_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/internal/infra/database/repository/video_repository_test.go -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/main.go -------------------------------------------------------------------------------- /pkg/workerpool/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/pkg/workerpool/doc.go -------------------------------------------------------------------------------- /pkg/workerpool/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/pkg/workerpool/errors.go -------------------------------------------------------------------------------- /pkg/workerpool/workerpool.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/pkg/workerpool/workerpool.go -------------------------------------------------------------------------------- /pkg/workerpool/workerpool_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devfullcycle/golangtechweek/HEAD/pkg/workerpool/workerpool_test.go --------------------------------------------------------------------------------