This commit is contained in:
Tomáš Dvořák
2025-10-16 13:32:05 +02:00
commit 12cba639b9
663 changed files with 168914 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
package models
import (
"gorm.io/gorm"
)
// UploadedFile represents a file uploaded to the server
type UploadedFile struct {
gorm.Model
Filename string `gorm:"not null" json:"filename"`
FilePath string `gorm:"uniqueIndex;not null" json:"file_path"`
FileURL string `gorm:"not null" json:"file_url"`
FileSize int64 `gorm:"default:0" json:"file_size"`
MimeType string `json:"mime_type"`
UploadedByID *uint `gorm:"index" json:"uploaded_by_id,omitempty"`
UploadedBy *User `gorm:"foreignKey:UploadedByID" json:"uploaded_by,omitempty"`
Usages []FileUsage `gorm:"foreignKey:FileID" json:"usages,omitempty"`
}
// FileUsage tracks where a file is being used
type FileUsage struct {
gorm.Model
FileID uint `gorm:"not null;index" json:"file_id"`
File *UploadedFile `gorm:"foreignKey:FileID" json:"file,omitempty"`
EntityType string `gorm:"not null;index" json:"entity_type"` // article, player, sponsor, event, contact, settings
EntityID uint `gorm:"not null;index" json:"entity_id"`
FieldName string `json:"field_name"` // image_url, logo_url, attachments, etc.
}
// TableName specifies the table name for UploadedFile
func (UploadedFile) TableName() string {
return "uploaded_files"
}
// TableName specifies the table name for FileUsage
func (FileUsage) TableName() string {
return "file_usages"
}