wms-be/database/entities/t_assignment_entity.go

47 lines
1.3 KiB
Go

package entities
import (
"fmt"
"github.com/google/uuid"
"gorm.io/gorm"
)
type TAssignmentEntity struct {
ID uuid.UUID `gorm:"primaryKey;type:uuid;default:uuid_generate_v4()" json:"id"`
DocumentType string `gorm:"type:varchar(100);" json:"document_type"`
DocumentID uuid.UUID `gorm:"type:uuid;index;" json:"document_id"`
ClientID uuid.UUID `gorm:"type:uuid;index;" json:"client_id"`
AssignmentUsers []TAssignmentUserEntity `gorm:"foreignKey:AssignmentID;references:ID"`
Client M_Client `gorm:"foreignKey:ClientID;references:ID"`
FullAuditTrail
}
func (TAssignmentEntity) TableName() string {
return "t_assignments"
}
// Contoh fungsi switch-case untuk ambil dokumen
func GetDocumentByAssignment(db *gorm.DB, assignment TAssignmentEntity) (interface{}, error) {
switch assignment.DocumentType {
// case "SOHeader":
// var so SOHeader
// if err := db.First(&so, "id = ?", assignment.DocumentID).Error; err != nil {
// return nil, err
// }
// return so, nil
// case "GRHeader":
// var gr GRHeader
// if err := db.First(&gr, "id = ?", assignment.DocumentID).Error; err != nil {
// return nil, err
// }
// return gr, nil
// Tambahkan case lain sesuai kebutuhan
default:
return nil, fmt.Errorf("unknown document type: %s", assignment.DocumentType)
}
}