77 lines
1.8 KiB
Plaintext
77 lines
1.8 KiB
Plaintext
@startuml Modèles de données
|
|
|
|
class Project {
|
|
+id: integer
|
|
+name: string
|
|
+description: string
|
|
+start_date: date
|
|
+status: integer
|
|
+getAllProjects()
|
|
+getProjectById(id)
|
|
+createProject(name, description, startDate, status)
|
|
+updateProject(id, updates)
|
|
+updateProjectStatus(id, status)
|
|
+deleteProject(id)
|
|
+findCurrentRenderingProject()
|
|
+findStoppingProject()
|
|
}
|
|
|
|
class Measurement {
|
|
+id: integer
|
|
+project_id: integer
|
|
+timestamp: datetime
|
|
+path: string
|
|
+temperature: float
|
|
+humidity: float
|
|
+order_id: integer
|
|
+getAllMeasurements()
|
|
+getMeasurementById(id)
|
|
+getMeasurementByProjectAndOrderId(projectId, orderId)
|
|
+getMeasurementsByProjectId(projectId)
|
|
+createMeasurement(projectId, timestamp, path, temperature, humidity, orderId)
|
|
+updateMeasurement(id, updates)
|
|
+deleteMeasurement(id)
|
|
+getNextOrderId(projectId)
|
|
}
|
|
|
|
class Video {
|
|
+id: integer
|
|
+project_id: integer
|
|
+measurement_ids: string
|
|
+name: string
|
|
+resolution: string
|
|
+duration: integer
|
|
+status: integer
|
|
+progress: float
|
|
+video_file: string
|
|
+started_at: datetime
|
|
+updated_at: datetime
|
|
+eta: float
|
|
+getAllVideos()
|
|
+getVideoById(id)
|
|
+getVideosByProjectId(projectId)
|
|
+createVideo(projectId, measurementIds, name, resolution, duration, status)
|
|
+updateVideo(id, updates)
|
|
+updateVideoFilePath(id, videoFile)
|
|
+updateVideoStatus(id, status)
|
|
+deleteVideo(id)
|
|
+getUnfinishedVideos()
|
|
+updateVideoProgress(id, progress, eta)
|
|
}
|
|
|
|
class Camera {
|
|
+id: integer
|
|
+interval: integer
|
|
+maintenance: integer
|
|
+active: integer
|
|
+getCamera()
|
|
+updateCamera(id, updates)
|
|
+deleteCamera(id)
|
|
+initializeCamera()
|
|
}
|
|
|
|
Project "1" -- "0..*" Measurement : possède >
|
|
Project "1" -- "0..*" Video : possède >
|
|
Measurement "1..*" -- "0..*" Video : utilisée dans >
|
|
|
|
@enduml |