refactor storage minio for k8s
This commit is contained in:
39
core/schema/models/sources.py
Normal file
39
core/schema/models/sources.py
Normal file
@@ -0,0 +1,39 @@
|
||||
"""
|
||||
Media source models.
|
||||
|
||||
Describes what types of sources the detection pipeline can process.
|
||||
Only chunk_job (blobs in MinIO) is implemented now — the rest are
|
||||
extension points with defined shapes.
|
||||
"""
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class SourceType(str, Enum):
|
||||
CHUNK_JOB = "chunk_job" # pre-chunked video segments in blob storage
|
||||
UPLOAD = "upload" # future: user-uploaded file → MinIO → pipeline
|
||||
DEVICE = "device" # future: local camera/capture card via ffmpeg (no MinIO)
|
||||
STREAM = "stream" # future: RTMP/HLS URL via ffmpeg (no MinIO)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ChunkInfo:
|
||||
"""A single chunk (video segment) stored in blob storage."""
|
||||
filename: str
|
||||
key: str # storage key (MinIO object key)
|
||||
size_bytes: int
|
||||
|
||||
|
||||
@dataclass
|
||||
class SourceJob:
|
||||
"""
|
||||
A group of chunks that belong together (same source video/session).
|
||||
|
||||
Listed by the source selector so the user can pick a job,
|
||||
then drill into its chunks.
|
||||
"""
|
||||
job_id: str
|
||||
source_type: str # SourceType value
|
||||
chunk_count: int
|
||||
total_bytes: int = 0
|
||||
Reference in New Issue
Block a user