37 lines
1.6 KiB
Go
37 lines
1.6 KiB
Go
package model
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type ScriptAnalysis struct {
|
|
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey" json:"id"`
|
|
UserID uuid.UUID `gorm:"type:uuid;index" json:"user_id"`
|
|
Name string `json:"name"`
|
|
SourceContent string `json:"source_content"`
|
|
ResultContent string `json:"result_content"`
|
|
AnalysisResult json.RawMessage `gorm:"type:jsonb;not null;default:'{}'" json:"analysis_result"`
|
|
AnalysisStatus string `json:"analysis_status"`
|
|
AnalysisMessage string `json:"analysis_message"`
|
|
Characters []ScriptAnalysisCharacter `gorm:"foreignKey:ScriptAnalysisID" json:"characters,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
DeletedAt *time.Time `json:"-"`
|
|
}
|
|
|
|
type ScriptAnalysisCharacter struct {
|
|
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey" json:"id"`
|
|
ScriptAnalysisID uuid.UUID `gorm:"type:uuid;index" json:"script_analysis_id"`
|
|
Name string `json:"name"`
|
|
Faction string `json:"faction"`
|
|
Biography string `json:"biography"`
|
|
Motivation string `json:"motivation"`
|
|
Relationship string `json:"relationship"`
|
|
SortOrder int `json:"sort_order"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|