feat: add attachment model type definitions

- Add core attachment type with metadata fields for transaction files
- Add GORM model for attachment with proper relationships
- Include file information, upload timestamps, and soft deletion support

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-07-01 11:03:13 +12:00
parent c335c834ba
commit d10686e70f
2 changed files with 48 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
package types
import (
"time"
)
type Attachment struct {
Id string `json:"id"`
TransactionId string `json:"transactionId"`
OrgId string `json:"orgId"`
UserId string `json:"userId"`
FileName string `json:"fileName"`
OriginalName string `json:"originalName"`
ContentType string `json:"contentType"`
FileSize int64 `json:"fileSize"`
FilePath string `json:"filePath"`
Description string `json:"description"`
Uploaded time.Time `json:"uploaded"`
Deleted bool `json:"deleted"`
}

28
models/attachment.go Normal file
View File

@@ -0,0 +1,28 @@
package models
import (
"time"
)
type Attachment struct {
ID []byte `gorm:"type:BINARY(16);primaryKey"`
TransactionID []byte `gorm:"column:transactionId;type:BINARY(16);not null"`
OrgID []byte `gorm:"column:orgId;type:BINARY(16);not null"`
UserID []byte `gorm:"column:userId;type:BINARY(16);not null"`
FileName string `gorm:"column:fileName;size:255;not null"`
OriginalName string `gorm:"column:originalName;size:255;not null"`
ContentType string `gorm:"column:contentType;size:100;not null"`
FileSize int64 `gorm:"column:fileSize;not null"`
FilePath string `gorm:"column:filePath;size:500;not null"`
Description string `gorm:"column:description;size:500"`
Uploaded time.Time `gorm:"column:uploaded;not null"`
Deleted bool `gorm:"column:deleted;default:false"`
Transaction Transaction `gorm:"foreignKey:TransactionID"`
Org Org `gorm:"foreignKey:OrgID"`
User User `gorm:"foreignKey:UserID"`
}
func (Attachment) TableName() string {
return "attachment"
}