models

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2025 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Overview

pkg/models/swagger.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArchiveInfo

type ArchiveInfo struct {
	Filename     string  `json:"filename" example:"archive-20250117-103000.zip"`
	Format       string  `json:"format" example:"zip" enums:"zip,tar"`
	FilesCount   int     `json:"files_count" example:"15"`
	Compressed   bool    `json:"compressed" example:"true"`
	SizeBytes    int64   `json:"size_bytes" example:"2097152"`
	SizeMB       float64 `json:"size_mb" example:"2.0"`
	CreationTime string  `json:"creation_time" example:"250ms"`

} // @name ArchiveInfo

ArchiveInfo contient les informations sur une archive @Description Métadonnées d'une archive créée

type ArchiveResponse

type ArchiveResponse struct {
	Message     string      `json:"message" example:"Archive created successfully"`
	Archive     ArchiveInfo `json:"archive"`
	CreatedAt   time.Time   `json:"created_at" example:"2025-01-17T10:30:00Z"`
	DownloadURL string      `` /* 126-byte string literal not displayed */

} // @name ArchiveResponse

ArchiveResponse représente la réponse de création d'archive @Description Résultat de la création d'une archive de résultats

type BuildArtifacts

type BuildArtifacts struct {
	HasDist       bool      `json:"has_dist" example:"true"`
	DistCreatedAt time.Time `json:"dist_created_at,omitempty" example:"2025-01-17T10:25:00Z"`
	IndexHtmlSize int64     `json:"index_html_size,omitempty" example:"15432"`
	AssetCount    int       `json:"asset_count,omitempty" example:"8"`
	BuildSuccess  bool      `json:"build_success,omitempty" example:"true"`

} // @name BuildArtifacts

BuildArtifacts contient les informations sur les artefacts de build @Description Informations sur les fichiers générés par le build

type CleanupSummary

type CleanupSummary struct {
	TotalWorkspaces     int    `json:"total_workspaces" example:"50"`
	EligibleForCleanup  int    `json:"eligible_for_cleanup" example:"15"`
	SuccessfullyCleaned int    `json:"successfully_cleaned" example:"12"`
	FailedToClean       int    `json:"failed_to_clean" example:"3"`
	MaxAgeHours         int    `json:"max_age_hours" example:"24"`
	PerformanceGain     string `json:"performance_gain" example:"High"`

} // @name CleanupSummary

CleanupSummary contient le résumé du nettoyage @Description Résumé des opérations de nettoyage

type DatabaseMetrics

type DatabaseMetrics struct {
	Connected       bool    `json:"connected" example:"true"`
	TotalJobs       int64   `json:"total_jobs" example:"2450"`
	JobsToday       int64   `json:"jobs_today" example:"145"`
	PendingJobs     int     `json:"pending_jobs" example:"3"`
	ProcessingJobs  int     `json:"processing_jobs" example:"2"`
	CompletedJobs   int64   `json:"completed_jobs" example:"2300"`
	FailedJobs      int64   `json:"failed_jobs" example:"145"`
	QueryTimeMs     float64 `json:"average_query_time_ms" example:"15.2"`
	ConnectionsUsed int     `json:"connections_used" example:"5"`
	ConnectionsMax  int     `json:"connections_max" example:"20"`

} // @name DatabaseMetrics

DatabaseMetrics contient les métriques de la base de données @Description Métriques de performance de la base de données

type ErrorResponse

type ErrorResponse struct {
	Error            string            `json:"error" example:"Validation failed"`
	Message          string            `json:"message,omitempty" example:"Detailed error message"`
	ValidationErrors []ValidationError `json:"validation_errors,omitempty"`
	Timestamp        time.Time         `json:"timestamp" example:"2025-01-17T10:30:00Z"`
	Path             string            `json:"path,omitempty" example:"/api/v1/generate"`
	RequestID        string            `json:"request_id,omitempty" example:"req-123456"`

} // @name ErrorResponse

ErrorResponse représente une réponse d'erreur standard @Description Réponse d'erreur standard de l'API

type FileDistribution

type FileDistribution struct {
	TotalFiles  int `json:"total_files" example:"25"`
	SourceFiles int `json:"source_files" example:"8"`
	DistFiles   int `json:"dist_files,omitempty" example:"12"`
	ConfigFiles int `json:"config_files" example:"3"`
	AssetFiles  int `json:"asset_files" example:"2"`

} // @name FileDistribution

FileDistribution représente la répartition des fichiers @Description Répartition des types de fichiers dans le workspace

type FileListResponse

type FileListResponse struct {
	JobID    string   `json:"job_id,omitempty" example:"550e8400-e29b-41d4-a716-446655440001"`
	CourseID string   `json:"course_id,omitempty" example:"550e8400-e29b-41d4-a716-446655440002"`
	Files    []string `json:"files" example:"index.html,assets/style.css,assets/script.js"`
	Count    int      `json:"count" example:"3"`

} // @name FileListResponse

FileListResponse représente la liste de fichiers @Description Liste de fichiers dans le stockage

type FileUploadResponse

type FileUploadResponse struct {
	Message string   `json:"message" example:"files uploaded successfully"`
	JobID   string   `json:"job_id" example:"550e8400-e29b-41d4-a716-446655440001"`
	Count   int      `json:"count" example:"3"`
	Files   []string `json:"files,omitempty" example:"slides.md,theme.css,config.json"`

} // @name FileUploadResponse

FileUploadResponse représente la réponse d'upload de fichiers @Description Réponse après upload de fichiers

type GenerationJob

type GenerationJob struct {
	ID          uuid.UUID   `json:"id" gorm:"type:uuid;primary_key"`
	CourseID    uuid.UUID   `json:"course_id" gorm:"type:uuid;not null;index"`
	Status      JobStatus   `json:"status" gorm:"type:varchar(20);not null;default:'pending';index"`
	Progress    int         `json:"progress" gorm:"default:0;check:progress >= 0 AND progress <= 100"`
	SourcePath  string      `json:"source_path" gorm:"type:text;not null"`
	ResultPath  string      `json:"result_path" gorm:"type:text"`
	CallbackURL string      `json:"callback_url" gorm:"type:text"`
	Error       string      `json:"error,omitempty" gorm:"type:text"`
	Logs        StringSlice `json:"logs" gorm:"type:jsonb;default:'[]'"`
	Metadata    JSON        `json:"metadata" gorm:"type:jsonb;default:'{}'"`
	CreatedAt   time.Time   `json:"created_at" gorm:"index"`
	UpdatedAt   time.Time   `json:"updated_at"`
	StartedAt   *time.Time  `json:"started_at,omitempty" gorm:"index"`
	CompletedAt *time.Time  `json:"completed_at,omitempty" gorm:"index"`
}

GenerationJob est le modèle principal pour la base de données

func (*GenerationJob) AddLog

func (j *GenerationJob) AddLog(message string)

AddLog ajoute un log avec timestamp

func (*GenerationJob) BeforeCreate

func (j *GenerationJob) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook GORM pour initialiser l'ID et les timestamps

func (*GenerationJob) BeforeUpdate

func (j *GenerationJob) BeforeUpdate(tx *gorm.DB) error

BeforeUpdate hook GORM pour mettre à jour le timestamp

func (*GenerationJob) IsActive

func (j *GenerationJob) IsActive() bool

IsActive retourne true si le job est en cours de traitement

func (*GenerationJob) IsTerminal

func (j *GenerationJob) IsTerminal() bool

IsTerminal retourne true si le job est dans un état final

func (*GenerationJob) SetStatus

func (j *GenerationJob) SetStatus(status JobStatus)

SetStatus met à jour le statut avec les timestamps appropriés

func (GenerationJob) TableName

func (GenerationJob) TableName() string

TableName spécifie le nom de la table

func (*GenerationJob) ToResponse

func (j *GenerationJob) ToResponse() *JobResponse

ToResponse convertit un GenerationJob en JobResponse

type GenerationRequest

type GenerationRequest struct {
	JobID       uuid.UUID              `json:"job_id" binding:"required"`
	CourseID    uuid.UUID              `json:"course_id" binding:"required"`
	SourcePath  string                 `json:"source_path" binding:"required"`
	CallbackURL string                 `json:"callback_url,omitempty"`
	Metadata    map[string]interface{} `json:"metadata,omitempty"`

} // @name GenerationRequest

GenerationRequest représente une demande de génération de cours @Description Requête pour créer un nouveau job de génération

type HealthResponse

type HealthResponse struct {
	Status      string    `json:"status" example:"healthy" enums:"healthy,degraded,unhealthy"`
	Service     string    `json:"service" example:"ocf-worker"`
	Version     string    `json:"version" example:"2.0.0"`
	Timestamp   time.Time `json:"timestamp" example:"2025-01-17T10:30:00Z"`
	Uptime      string    `json:"uptime,omitempty" example:"24h30m15s"`
	Environment string    `json:"environment,omitempty" example:"development"`

} // @name HealthResponse

HealthResponse représente la réponse du health check @Description Statut de santé du service

type JSON

type JSON map[string]interface{}

JSON type for PostgreSQL compatibility

func (*JSON) Scan

func (j *JSON) Scan(value interface{}) error

func (JSON) Value

func (j JSON) Value() (driver.Value, error)

type JobListResponse

type JobListResponse struct {
	Jobs       []JobResponse `json:"jobs"`
	Count      int           `json:"count" example:"25"`
	TotalCount int           `json:"total_count,omitempty" example:"150"`
	Page       int           `json:"page,omitempty" example:"1"`
	PageSize   int           `json:"page_size,omitempty" example:"25"`

} // @name JobListResponse

JobListResponse représente une liste de jobs @Description Liste paginée de jobs

type JobResponse

type JobResponse struct {
	ID          uuid.UUID              `json:"id"`
	CourseID    uuid.UUID              `json:"course_id"`
	Status      JobStatus              `json:"status"`
	Progress    int                    `json:"progress"`
	SourcePath  string                 `json:"source_path"`
	ResultPath  string                 `json:"result_path,omitempty"`
	CallbackURL string                 `json:"callback_url,omitempty"`
	Error       string                 `json:"error,omitempty"`
	Logs        []string               `json:"logs,omitempty"`
	Metadata    map[string]interface{} `json:"metadata,omitempty"`
	CreatedAt   time.Time              `json:"created_at"`
	UpdatedAt   time.Time              `json:"updated_at"`
	StartedAt   *time.Time             `json:"started_at,omitempty"`
	CompletedAt *time.Time             `json:"completed_at,omitempty"`

} // @name JobResponse

JobResponse représente la réponse contenant les détails d'un job @Description Détails complets d'un job de génération

type JobStatus

type JobStatus string
const (
	StatusPending    JobStatus = "pending"
	StatusProcessing JobStatus = "processing"
	StatusCompleted  JobStatus = "completed"
	StatusFailed     JobStatus = "failed"
	StatusTimeout    JobStatus = "timeout"
)

type PaginationInfo

type PaginationInfo struct {
	Page         int  `json:"page" example:"1"`
	PageSize     int  `json:"page_size" example:"25"`
	TotalPages   int  `json:"total_pages" example:"4"`
	TotalItems   int  `json:"total_items" example:"95"`
	HasNext      bool `json:"has_next" example:"true"`
	HasPrevious  bool `json:"has_previous" example:"false"`
	NextPage     int  `json:"next_page,omitempty" example:"2"`
	PreviousPage int  `json:"previous_page,omitempty"`

} // @name PaginationInfo

PaginationInfo représente les informations de pagination @Description Informations de pagination pour les listes

type StorageCapacity

type StorageCapacity struct {
	Total     int64   `json:"total_bytes" example:"1073741824"`    // 1GB
	Used      int64   `json:"used_bytes" example:"268435456"`      // 256MB
	Available int64   `json:"available_bytes" example:"805306368"` // 768MB
	Usage     float64 `json:"usage_percent" example:"25.0"`

} // @name StorageCapacity

StorageCapacity représente la capacité de stockage @Description Informations sur la capacité de stockage

type StorageInfo

type StorageInfo struct {
	StorageType string            `json:"storage_type" example:"garage" enums:"filesystem,garage"`
	Endpoints   map[string]string `json:"endpoints"`
	Status      string            `json:"status" example:"healthy"`
	Capacity    *StorageCapacity  `json:"capacity,omitempty"`

} // @name StorageInfo

StorageInfo représente les informations du système de stockage @Description Informations sur la configuration du stockage

type StorageMetrics

type StorageMetrics struct {
	Type           string `json:"type" example:"garage" enums:"filesystem,garage"`
	TotalFiles     int64  `json:"total_files" example:"1250"`
	TotalSizeBytes int64  `json:"total_size_bytes" example:"1073741824"`
	TotalSizeMB    int64  `json:"total_size_mb" example:"1024"`
	SourceFiles    int64  `json:"source_files" example:"800"`
	ResultFiles    int64  `json:"result_files" example:"450"`
	Healthy        bool   `json:"healthy" example:"true"`

} // @name StorageMetrics

StorageMetrics contient les métriques de stockage @Description Métriques du système de stockage

type StorageUsage

type StorageUsage struct {
	TotalBytes  int64   `json:"total_bytes" example:"52428800"`
	TotalMB     float64 `json:"total_mb" example:"50.0"`
	SourceBytes int64   `json:"source_bytes" example:"2097152"`
	SourceMB    float64 `json:"source_mb" example:"2.0"`
	DistBytes   int64   `json:"dist_bytes,omitempty" example:"20971520"`
	DistMB      float64 `json:"dist_mb,omitempty" example:"20.0"`
	OtherBytes  int64   `json:"other_bytes" example:"29360128"`
	OtherMB     float64 `json:"other_mb" example:"28.0"`

} // @name StorageUsage

StorageUsage représente l'utilisation du stockage @Description Métriques d'utilisation du stockage

type StringSlice

type StringSlice []string

StringSlice type for PostgreSQL JSON arrays

func (*StringSlice) Scan

func (ss *StringSlice) Scan(value interface{}) error

func (StringSlice) Value

func (ss StringSlice) Value() (driver.Value, error)

type SuccessResponse

type SuccessResponse struct {
	Message   string      `json:"message" example:"Operation completed successfully"`
	Data      interface{} `json:"data,omitempty"`
	Timestamp time.Time   `json:"timestamp" example:"2025-01-17T10:30:00Z"`

} // @name SuccessResponse

SuccessResponse représente une réponse de succès générique @Description Réponse de succès standard

type SystemMetrics

type SystemMetrics struct {
	Timestamp   time.Time       `json:"timestamp" example:"2025-01-17T10:30:00Z"`
	Uptime      string          `json:"uptime" example:"24h30m15s"`
	Version     string          `json:"version" example:"2.0.0"`
	Environment string          `json:"environment" example:"production"`
	Storage     StorageMetrics  `json:"storage"`
	Worker      WorkerMetrics   `json:"worker"`
	Database    DatabaseMetrics `json:"database"`

} // @name SystemMetrics

SystemMetrics représente les métriques système globales @Description Métriques système et de performance globales

type ThemeAutoInstallResponse

type ThemeAutoInstallResponse struct {
	JobID       string               `json:"job_id" example:"550e8400-e29b-41d4-a716-446655440001"`
	Results     []ThemeInstallResult `json:"results"`
	TotalThemes int                  `json:"total_themes" example:"3"`
	Successful  int                  `json:"successful" example:"2"`
	Failed      int                  `json:"failed" example:"1"`
	Duration    string               `json:"duration" example:"2m30s"`

} // @name ThemeAutoInstallResponse

ThemeAutoInstallResponse représente le résultat d'installation automatique @Description Résultat de l'installation automatique des thèmes manquants

type ThemeDetectionResponse

type ThemeDetectionResponse struct {
	JobID           string      `json:"job_id" example:"550e8400-e29b-41d4-a716-446655440001"`
	MissingThemes   []string    `json:"missing_themes" example:"@slidev/theme-seriph,@slidev/theme-minimal"`
	InstalledThemes []ThemeInfo `json:"installed_themes"`
	DetectedCount   int         `json:"detected_count" example:"2"`

} // @name ThemeDetectionResponse

ThemeDetectionResponse représente le résultat de détection de thèmes @Description Résultat de la détection automatique des thèmes requis

type ThemeInfo

type ThemeInfo struct {
	Name        string `json:"name" example:"@slidev/theme-seriph"`
	Version     string `json:"version" example:"0.22.7"`
	Installed   bool   `json:"installed" example:"true"`
	Description string `json:"description" example:"Seriph theme with elegant typography"`
	Homepage    string `json:"homepage" example:"https://github.com/slidevjs/themes"`

} // @name ThemeInfo

ThemeInfo représente les informations d'un thème Slidev @Description Informations sur un thème Slidev

type ThemeInstallRequest

type ThemeInstallRequest struct {
	Theme string `json:"theme" example:"@slidev/theme-seriph" binding:"required"`

} // @name ThemeInstallRequest

ThemeInstallRequest représente une demande d'installation de thème @Description Requête pour installer un thème Slidev

type ThemeInstallResponse

type ThemeInstallResponse struct {
	Theme     string `json:"theme" example:"@slidev/theme-seriph"`
	Success   bool   `json:"success" example:"true"`
	Installed bool   `json:"installed" example:"true"`
	Message   string `json:"message,omitempty" example:"Theme installed successfully"`
	Error     string `json:"error,omitempty"`

} // @name ThemeInstallResponse

ThemeInstallResponse représente la réponse d'installation de thème @Description Réponse après installation d'un thème

type ThemeInstallResult

type ThemeInstallResult struct {
	Theme     string   `json:"theme" example:"@slidev/theme-seriph"`
	Success   bool     `json:"success" example:"true"`
	Installed bool     `json:"installed" example:"true"`
	Error     string   `json:"error,omitempty"`
	Duration  string   `json:"duration" example:"45s"`
	Logs      []string `json:"logs,omitempty"`
	ExitCode  int      `json:"exit_code,omitempty" example:"0"`

} // @name ThemeInstallResult

ThemeInstallResult représente le résultat d'installation d'un thème @Description Détails du résultat d'installation d'un thème spécifique

type ThemeListResponse

type ThemeListResponse struct {
	Themes  []ThemeInfo  `json:"themes"`
	Count   int          `json:"count" example:"12"`
	Summary ThemeSummary `json:"summary"`

} // @name ThemeListResponse

ThemeListResponse représente la liste des thèmes disponibles @Description Liste des thèmes Slidev avec leur statut d'installation

type ThemeSummary

type ThemeSummary struct {
	Total     int `json:"total" example:"12"`
	Installed int `json:"installed" example:"3"`
	Available int `json:"available" example:"9"`

} // @name ThemeSummary

ThemeSummary contient un résumé des thèmes @Description Résumé des statistiques des thèmes

type ValidationError

type ValidationError struct {
	Field   string `json:"field" example:"job_id"`
	Value   string `json:"value" example:"invalid-uuid"`
	Message string `json:"message" example:"job ID must be a valid UUID"`
	Code    string `json:"code" example:"INVALID_UUID"`

} // @name ValidationError

ValidationError représente une erreur de validation spécifique @Description Détail d'une erreur de validation

type WorkerHealthResponse

type WorkerHealthResponse struct {
	Status     string           `json:"status" example:"healthy" enums:"healthy,degraded,unhealthy"`
	WorkerPool WorkerPoolHealth `json:"worker_pool"`
	Issues     []string         `json:"issues,omitempty" example:"1 worker is overloaded"`
	Timestamp  time.Time        `json:"timestamp" example:"2025-01-17T10:30:00Z"`
	Uptime     string           `json:"uptime" example:"24h30m15s"`

} // @name WorkerHealthResponse

WorkerHealthResponse représente l'état de santé du système de workers @Description État de santé détaillé du système de workers

type WorkerInfo

type WorkerInfo struct {
	ID           int    `json:"id" example:"1"`
	Status       string `json:"status" example:"busy" enums:"idle,busy,stopped"`
	CurrentJobID string `json:"current_job_id,omitempty" example:"550e8400-e29b-41d4-a716-446655440001"`
	JobsTotal    int64  `json:"jobs_total" example:"150"`
	JobsSuccess  int64  `json:"jobs_success" example:"145"`
	JobsFailed   int64  `json:"jobs_failed" example:"5"`

} // @name WorkerInfo

WorkerInfo représente les informations d'un worker individuel @Description Informations sur un worker spécifique

type WorkerMetrics

type WorkerMetrics struct {
	TotalWorkers       int     `json:"total_workers" example:"3"`
	ActiveWorkers      int     `json:"active_workers" example:"2"`
	JobsProcessedToday int64   `json:"jobs_processed_today" example:"145"`
	JobsPerHour        float64 `json:"jobs_per_hour" example:"12.5"`
	AverageJobTime     string  `json:"average_job_time" example:"2m15s"`
	SuccessRate24h     float64 `json:"success_rate_24h_percent" example:"96.2"`
	QueueSize          int     `json:"queue_size" example:"3"`
	WorkspaceCount     int     `json:"workspace_count" example:"15"`

} // @name WorkerMetrics

WorkerMetrics contient les métriques des workers @Description Métriques de performance des workers

type WorkerPerformance

type WorkerPerformance struct {
	JobsPerMinute       float64 `json:"jobs_per_minute" example:"12.5"`
	AverageJobDuration  string  `json:"average_job_duration" example:"2m15s"`
	SuccessRate         float64 `json:"success_rate_percent" example:"95.2"`
	TotalJobsProcessed  int64   `json:"total_jobs_processed" example:"1250"`
	TotalJobsSuccessful int64   `json:"total_jobs_successful" example:"1190"`
	TotalJobsFailed     int64   `json:"total_jobs_failed" example:"60"`

} // @name WorkerPerformance

WorkerPerformance contient les métriques de performance @Description Métriques de performance globales du pool de workers

type WorkerPoolHealth

type WorkerPoolHealth struct {
	Running       bool    `json:"running" example:"true"`
	WorkerCount   int     `json:"worker_count" example:"3"`
	ActiveWorkers int     `json:"active_workers" example:"2"`
	IdleWorkers   int     `json:"idle_workers" example:"1"`
	QueueSize     int     `json:"queue_size" example:"3"`
	QueueUsage    float64 `json:"queue_usage_percent" example:"15.0"`
	OverloadRisk  bool    `json:"overload_risk" example:"false"`

} // @name WorkerPoolHealth

WorkerPoolHealth contient les métriques de santé du pool @Description Indicateurs de santé du pool de workers

type WorkerPoolStats

type WorkerPoolStats struct {
	WorkerCount   int               `json:"worker_count" example:"3"`
	QueueSize     int               `json:"queue_size" example:"5"`
	QueueCapacity int               `json:"queue_capacity" example:"20"`
	QueueUsage    float64           `json:"queue_usage_percent" example:"25.0"`
	Running       bool              `json:"running" example:"true"`
	Workers       []WorkerInfo      `json:"workers"`
	Performance   WorkerPerformance `json:"performance"`

} // @name WorkerPoolStats

WorkerPoolStats contient les statistiques du pool de workers @Description Métriques détaillées du pool de workers

type WorkerStats

type WorkerStats struct {
	WorkerCount   int          `json:"worker_count" example:"3"`
	QueueSize     int          `json:"queue_size" example:"5"`
	QueueCapacity int          `json:"queue_capacity" example:"20"`
	Running       bool         `json:"running" example:"true"`
	Workers       []WorkerInfo `json:"workers"`

} // @name WorkerStats

WorkerStats représente les statistiques du pool de workers @Description Statistiques détaillées du pool de workers

type WorkerStatsResponse

type WorkerStatsResponse struct {
	WorkerPool WorkerPoolStats `json:"worker_pool"`
	Timestamp  time.Time       `json:"timestamp" example:"2025-01-17T10:30:00Z"`

} // @name WorkerStatsResponse

WorkerStatsResponse représente les statistiques détaillées du worker @Description Statistiques complètes du pool de workers et de leurs performances

type WorkspaceActivity

type WorkspaceActivity struct {
	Status        string    `json:"status" example:"idle" enums:"active,idle,building,completed,failed"`
	CreatedAt     time.Time `json:"created_at" example:"2025-01-17T10:20:00Z"`
	LastActivity  time.Time `json:"last_activity" example:"2025-01-17T10:25:00Z"`
	AgeDuration   string    `json:"age_duration" example:"10m30s"`
	JobStatus     string    `json:"job_status,omitempty" example:"completed"`
	BuildDuration string    `json:"build_duration,omitempty" example:"2m15s"`

} // @name WorkspaceActivity

WorkspaceActivity contient l'activité du workspace @Description Informations sur l'activité et l'historique du workspace

type WorkspaceCleanupBatchResponse

type WorkspaceCleanupBatchResponse struct {
	CleanedCount      int                        `json:"cleaned_count" example:"12"`
	TotalSizeFreed    int64                      `json:"total_size_freed_bytes" example:"629145600"`
	TotalSizeFreedMB  float64                    `json:"total_size_freed_mb" example:"600.0"`
	TotalFilesRemoved int                        `json:"total_files_removed" example:"300"`
	CleanupDuration   string                     `json:"cleanup_duration" example:"5.2s"`
	Details           []WorkspaceCleanupResponse `json:"details,omitempty"`
	Errors            []string                   `json:"errors,omitempty"`
	Summary           CleanupSummary             `json:"summary"`

} // @name WorkspaceCleanupBatchResponse

WorkspaceCleanupBatchResponse représente le résultat de nettoyage en lot @Description Résultat du nettoyage automatique des anciens workspaces

type WorkspaceCleanupResponse

type WorkspaceCleanupResponse struct {
	JobID        string  `json:"job_id" example:"550e8400-e29b-41d4-a716-446655440001"`
	Cleaned      bool    `json:"cleaned" example:"true"`
	SizeFreed    int64   `json:"size_freed_bytes" example:"52428800"`
	SizeFreedMB  float64 `json:"size_freed_mb" example:"50.0"`
	FilesRemoved int     `json:"files_removed" example:"25"`
	CleanupTime  string  `json:"cleanup_time" example:"150ms"`
	Error        string  `json:"error,omitempty"`

} // @name WorkspaceCleanupResponse

WorkspaceCleanupResponse représente le résultat de nettoyage d'un workspace @Description Résultat du nettoyage d'un workspace spécifique

type WorkspaceInfo

type WorkspaceInfo struct {
	JobID         string   `json:"job_id" example:"550e8400-e29b-41d4-a716-446655440001"`
	Path          string   `json:"path" example:"/app/workspaces/550e8400-e29b-41d4-a716-446655440001"`
	DistPath      string   `json:"dist_path" example:"/app/workspaces/550e8400-e29b-41d4-a716-446655440001/dist"`
	Exists        bool     `json:"exists" example:"true"`
	SizeBytes     int64    `json:"size_bytes" example:"52428800"`
	FileCount     int      `json:"file_count" example:"25"`
	Files         []string `json:"files,omitempty" example:"slides.md,theme.css,package.json"`
	DistExists    bool     `json:"dist_exists" example:"true"`
	DistFileCount int      `json:"dist_file_count" example:"12"`
	DistFiles     []string `json:"dist_files,omitempty" example:"index.html,assets/style.css,assets/script.js"`

} // @name WorkspaceInfo

WorkspaceInfo structure @Description Informations complètes sur un workspace

type WorkspaceInfoResponse

type WorkspaceInfoResponse struct {
	Workspace WorkspaceInfo     `json:"workspace"`
	Usage     WorkspaceUsage    `json:"usage"`
	Activity  WorkspaceActivity `json:"activity"`

} // @name WorkspaceInfoResponse

WorkspaceInfoResponse représente les informations détaillées d'un workspace @Description Informations complètes et métriques d'un workspace spécifique

type WorkspaceListResponse

type WorkspaceListResponse struct {
	Workspaces []WorkspaceInfo   `json:"workspaces"`
	Count      int               `json:"count" example:"15"`
	TotalCount int               `json:"total_count,omitempty" example:"45"`
	Page       int               `json:"page,omitempty" example:"1"`
	PageSize   int               `json:"page_size,omitempty" example:"25"`
	Summary    WorkspacesSummary `json:"summary"`

} // @name WorkspaceListResponse

WorkspaceListResponse représente la liste des workspaces @Description Liste paginée des workspaces actifs et leurs informations

type WorkspaceUsage

type WorkspaceUsage struct {
	DiskUsage        StorageUsage     `json:"disk_usage"`
	FileDistribution FileDistribution `json:"file_distribution"`
	BuildArtifacts   BuildArtifacts   `json:"build_artifacts"`

} // @name WorkspaceUsage

WorkspaceUsage contient les métriques d'utilisation @Description Métriques d'utilisation détaillées du workspace

type WorkspacesSummary

type WorkspacesSummary struct {
	TotalWorkspaces   int   `json:"total_workspaces" example:"45"`
	ActiveWorkspaces  int   `json:"active_workspaces" example:"12"`
	IdleWorkspaces    int   `json:"idle_workspaces" example:"33"`
	TotalSizeBytes    int64 `json:"total_size_bytes" example:"1073741824"`
	TotalSizeMB       int   `json:"total_size_mb" example:"1024"`
	AverageFilesPerWS int   `json:"average_files_per_workspace" example:"8"`

} // @name WorkspacesSummary

WorkspacesSummary contient un résumé des workspaces @Description Statistiques globales des workspaces

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL