package models import ( "time" ) // TransactionImage represents an image attachment for a transaction // Feature: accounting-feature-upgrade // Validates: Requirements 4.1-4.8 type TransactionImage struct { ID uint `gorm:"primarykey" json:"id"` TransactionID uint `gorm:"not null;index" json:"transaction_id"` FilePath string `gorm:"size:255;not null" json:"file_path"` FileName string `gorm:"size:100" json:"file_name"` FileSize int64 `json:"file_size"` MimeType string `gorm:"size:50" json:"mime_type"` CreatedAt time.Time `json:"created_at"` // Relationships Transaction Transaction `gorm:"foreignKey:TransactionID" json:"-"` } // TableName specifies the table name for TransactionImage func (TransactionImage) TableName() string { return "transaction_images" } // Image attachment constraints const ( // MaxImagesPerTransaction limits the number of images per transaction // Validates: Requirements 4.9 MaxImagesPerTransaction = 9 // MaxImageSizeBytes limits the size of each image to 10MB // Validates: Requirements 4.10 MaxImageSizeBytes = 10 * 1024 * 1024 // 10MB // AllowedImageTypes specifies the supported image formats // Validates: Requirements 4.11 AllowedImageTypes = "image/jpeg,image/png,image/heic" )