81 lines
1.4 KiB
Go
81 lines
1.4 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
type User struct {
|
|
ID uint
|
|
Email string
|
|
PasswordHash string
|
|
Role string
|
|
}
|
|
|
|
type Trait struct {
|
|
ID uint
|
|
Name string
|
|
}
|
|
|
|
type JobPosting struct {
|
|
ID uint
|
|
Title string
|
|
Description string
|
|
Seniority string
|
|
Position string
|
|
Status string
|
|
DurationMinutes int
|
|
Labels []Trait
|
|
RequiredSkills []Trait
|
|
AdditionalSkills []Trait
|
|
Questions []Question
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
type Question struct {
|
|
ID uint
|
|
Text string
|
|
Type string
|
|
Options []string
|
|
ReferenceAnswer string
|
|
Deprecated bool
|
|
}
|
|
|
|
type Participant struct {
|
|
ID uint
|
|
FirstName string
|
|
LastName string
|
|
Birthday *time.Time
|
|
Email string
|
|
ContactInfo string
|
|
Photo []byte
|
|
PhotoType string
|
|
CV []byte
|
|
CVFilename string
|
|
Traits []Trait
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
type CandidateMatch struct {
|
|
Participant Participant
|
|
Score float64
|
|
Matched []string
|
|
Missing []string
|
|
}
|
|
|
|
type Invitation struct {
|
|
ID uint
|
|
JobID uint
|
|
ParticipantID uint
|
|
ParticipantName string
|
|
ParticipantEmail string
|
|
Token string
|
|
Status string
|
|
DurationMinutes int
|
|
AcceptedAt *time.Time
|
|
CompletedAt *time.Time
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
type Interview struct {
|
|
Invitation Invitation
|
|
Job JobPosting
|
|
Answers map[uint]string
|
|
}
|