Refactor code structure for improved readability and maintainability

This commit is contained in:
2025-04-28 00:52:40 +02:00
parent b6e0080caa
commit 93026436a9
48 changed files with 2116 additions and 126 deletions

View File

@@ -0,0 +1,39 @@
@startuml Création de vidéo
actor Client
participant "videoRoutes" as Routes
participant "VideoController" as Controller
participant "Video" as Model
participant "Measurement" as MeasurementModel
participant "VideoService" as Service
participant "FFmpeg" as FFmpeg
database Database
Client -> Routes: POST /videos
Routes -> Controller: createVideo(req, res)
Controller -> Model: createVideo(project_id, measurement_ids, name, resolution, duration)
Model -> Database: INSERT INTO videos
Database --> Model: video data
Model --> Controller: video object
Controller -> Controller: getMeasurementPathList(measurement_ids, project_id)
Controller -> MeasurementModel: getMeasurementByProjectAndOrderId(projectId, orderId)
MeasurementModel -> Database: SELECT * FROM measurements
Database --> MeasurementModel: measurement data
MeasurementModel --> Controller: measurement object with path
Controller -> Service: createVideoFromImages(project_id, pathList, duration, video_id, resWidth, resHeight)
Service -> FFmpeg: spawn('ffmpeg', ffmpegArgs)
Service -> Model: updateVideo(videoId, {status: rendering, progress: 0})
Model -> Database: UPDATE videos SET status = rendering, progress = 0
FFmpeg --> Service: stderr progress events
Service -> Model: updateVideoProgress(videoId, progress, eta)
Model -> Database: UPDATE videos SET progress = X, eta = Y
FFmpeg --> Service: process complete
Service -> Model: updateVideo(videoId, {status: completed, progress: 100})
Model -> Database: UPDATE videos SET status = completed, progress = 100
Service --> Controller: videoFile path
Controller --> Routes: { message: success, id: video.id }
Routes --> Client: 200 OK - JSON Response
@enduml