66 lines
3.3 KiB
Go
66 lines
3.3 KiB
Go
package entities
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type LetterIncomingDisposition struct {
|
|
ID uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()" json:"id"`
|
|
LetterID uuid.UUID `gorm:"type:uuid;not null" json:"letter_id"`
|
|
DepartmentID *uuid.UUID `json:"department_id,omitempty"`
|
|
Notes *string `json:"notes,omitempty"`
|
|
ReadAt *time.Time `json:"read_at,omitempty"`
|
|
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
|
|
CreatedBy uuid.UUID `gorm:"not null" json:"created_by"`
|
|
UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"`
|
|
Department Department `gorm:"foreignKey:DepartmentID;references:ID" json:"department,omitempty"`
|
|
Departments []LetterIncomingDispositionDepartment `gorm:"foreignKey:LetterIncomingDispositionID;references:ID" json:"departments,omitempty"`
|
|
ActionSelections []LetterDispositionActionSelection `gorm:"foreignKey:DispositionID;references:ID" json:"action_selections,omitempty"`
|
|
DispositionNotes []DispositionNote `gorm:"foreignKey:DispositionID;references:ID" json:"disposition_notes,omitempty"`
|
|
}
|
|
|
|
func (LetterIncomingDisposition) TableName() string { return "letter_incoming_dispositions" }
|
|
|
|
type LetterIncomingDispositionDepartment struct {
|
|
ID uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()" json:"id"`
|
|
LetterIncomingDispositionID uuid.UUID `gorm:"type:uuid;not null" json:"letter_incoming_disposition_id"`
|
|
DepartmentID uuid.UUID `gorm:"type:uuid;not null" json:"department_id"`
|
|
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
|
|
|
|
// Relationships
|
|
Department *Department `gorm:"foreignKey:DepartmentID;references:ID" json:"department,omitempty"`
|
|
}
|
|
|
|
func (LetterIncomingDispositionDepartment) TableName() string {
|
|
return "letter_incoming_dispositions_department"
|
|
}
|
|
|
|
type DispositionNote struct {
|
|
ID uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()" json:"id"`
|
|
DispositionID uuid.UUID `gorm:"type:uuid;not null" json:"disposition_id"`
|
|
UserID *uuid.UUID `json:"user_id,omitempty"`
|
|
Note string `gorm:"not null" json:"note"`
|
|
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
|
|
|
|
// Relationships
|
|
User *User `gorm:"foreignKey:UserID;references:ID" json:"user,omitempty"`
|
|
}
|
|
|
|
func (DispositionNote) TableName() string { return "disposition_notes" }
|
|
|
|
type LetterDispositionActionSelection struct {
|
|
ID uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()" json:"id"`
|
|
DispositionID uuid.UUID `gorm:"type:uuid;not null" json:"disposition_id"`
|
|
ActionID uuid.UUID `gorm:"type:uuid;not null" json:"action_id"`
|
|
Note *string `json:"note,omitempty"`
|
|
CreatedBy uuid.UUID `gorm:"not null" json:"created_by"`
|
|
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
|
|
|
|
// Relationships
|
|
Action *DispositionAction `gorm:"foreignKey:ActionID;references:ID" json:"action,omitempty"`
|
|
}
|
|
|
|
func (LetterDispositionActionSelection) TableName() string { return "letter_disposition_actions" }
|