Files
History_Api/internal/models/media.go
AzenKain af76d2a26a
All checks were successful
Build and Release / release (push) Successful in 1m27s
UPDATE: Fix bug
2026-04-10 15:52:09 +07:00

71 lines
1.9 KiB
Go

package models
import (
"history-api/internal/dtos/response"
"time"
)
type MediaEntity struct {
ID string `json:"id"`
UserID string `json:"user_id"`
StorageKey string `json:"storage_key"`
OriginalName string `json:"original_name"`
MimeType string `json:"mime_type"`
Size int64 `json:"size"`
FileMetadata []byte `json:"file_metadata"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
}
type MediaSimpleEntity struct {
ID string `json:"id"`
StorageKey string `json:"storage_key"`
OriginalName string `json:"original_name"`
MimeType string `json:"mime_type"`
Size int64 `json:"size"`
FileMetadata []byte `json:"file_metadata"`
CreatedAt time.Time `json:"created_at"`
}
type MediaStorageEntity struct {
ID string `json:"id"`
StorageKey string `json:"storage_key"`
}
func (e * MediaEntity) ToStorageEntity() *MediaStorageEntity {
return &MediaStorageEntity{
ID: e.ID,
StorageKey: e.StorageKey,
}
}
func (e *MediaEntity) ToResponse() *response.MediaResponse {
return &response.MediaResponse{
ID: e.ID,
UserID: e.UserID,
StorageKey: e.StorageKey,
OriginalName: e.OriginalName,
MimeType: e.MimeType,
Size: e.Size,
FileMetadata: e.FileMetadata,
CreatedAt: e.CreatedAt,
UpdatedAt: e.UpdatedAt,
}
}
func MediaEntitiesToResponse(entities []*MediaEntity) []*response.MediaResponse {
responses := make([]*response.MediaResponse, len(entities))
for i, entity := range entities {
responses[i] = entity.ToResponse()
}
return responses
}
func MediaEntitiesToStorageEntitye(entities []*MediaEntity) []*MediaStorageEntity {
responses := make([]*MediaStorageEntity, len(entities))
for i, entity := range entities {
responses[i] = entity.ToStorageEntity()
}
return responses
}