initial commit
This commit is contained in:
commit
6ffc0d2c99
54 changed files with 11900 additions and 0 deletions
140
backend/internal/web/model/models.go
Normal file
140
backend/internal/web/model/models.go
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
type ErrorResponse struct {
|
||||
Error string `json:"error"`
|
||||
}
|
||||
|
||||
type LoginRequest struct {
|
||||
Email string `json:"email"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
type LoginResponse struct {
|
||||
Token string `json:"token"`
|
||||
User User `json:"user"`
|
||||
}
|
||||
|
||||
type User struct {
|
||||
ID uint `json:"id"`
|
||||
Email string `json:"email"`
|
||||
Role string `json:"role"`
|
||||
}
|
||||
|
||||
type JobRequest struct {
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
Seniority string `json:"seniority"`
|
||||
Position string `json:"position"`
|
||||
DurationMinutes int `json:"durationMinutes"`
|
||||
Labels []string `json:"labels"`
|
||||
RequiredSkills []string `json:"requiredSkills"`
|
||||
AdditionalSkills []string `json:"additionalSkills"`
|
||||
}
|
||||
|
||||
type JobResponse struct {
|
||||
ID uint `json:"id"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
Seniority string `json:"seniority"`
|
||||
Position string `json:"position"`
|
||||
Status string `json:"status"`
|
||||
DurationMinutes int `json:"durationMinutes"`
|
||||
Labels []string `json:"labels"`
|
||||
RequiredSkills []string `json:"requiredSkills"`
|
||||
AdditionalSkills []string `json:"additionalSkills"`
|
||||
Questions []QuestionResponse `json:"questions"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
type QuestionRequest struct {
|
||||
Text string `json:"text"`
|
||||
Type string `json:"type"`
|
||||
Options []string `json:"options"`
|
||||
ReferenceAnswer string `json:"referenceAnswer"`
|
||||
}
|
||||
|
||||
type QuestionResponse struct {
|
||||
ID uint `json:"id"`
|
||||
Text string `json:"text"`
|
||||
Type string `json:"type"`
|
||||
Options []string `json:"options"`
|
||||
ReferenceAnswer string `json:"referenceAnswer"`
|
||||
Deprecated bool `json:"deprecated"`
|
||||
}
|
||||
|
||||
type QuestionStatusRequest struct {
|
||||
Deprecated bool `json:"deprecated"`
|
||||
}
|
||||
|
||||
type JobStatusRequest struct {
|
||||
Status string `json:"status"`
|
||||
DurationMinutes int `json:"durationMinutes"`
|
||||
}
|
||||
|
||||
type InvitationRequest struct {
|
||||
ParticipantID uint `json:"participantId"`
|
||||
}
|
||||
|
||||
type ParticipantResponse struct {
|
||||
ID uint `json:"id"`
|
||||
FirstName string `json:"firstName"`
|
||||
LastName string `json:"lastName"`
|
||||
Birthday *string `json:"birthday,omitempty"`
|
||||
Email string `json:"email"`
|
||||
ContactInfo string `json:"contactInfo"`
|
||||
PhotoURL string `json:"photoUrl,omitempty"`
|
||||
CVFilename string `json:"cvFilename,omitempty"`
|
||||
CVURL string `json:"cvUrl,omitempty"`
|
||||
Traits []string `json:"traits"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
type CandidateResponse struct {
|
||||
Participant ParticipantResponse `json:"participant"`
|
||||
Score float64 `json:"score"`
|
||||
Matched []string `json:"matchedTraits"`
|
||||
Missing []string `json:"missingTraits"`
|
||||
}
|
||||
|
||||
type InvitationResponse struct {
|
||||
ID uint `json:"id"`
|
||||
JobID uint `json:"jobId"`
|
||||
ParticipantID uint `json:"participantId"`
|
||||
ParticipantName string `json:"participantName"`
|
||||
ParticipantEmail string `json:"participantEmail"`
|
||||
Token string `json:"token"`
|
||||
Status string `json:"status"`
|
||||
ParticipantURL string `json:"participantUrl"`
|
||||
AcceptedAt *time.Time `json:"acceptedAt,omitempty"`
|
||||
CompletedAt *time.Time `json:"completedAt,omitempty"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
type InterviewJobResponse struct {
|
||||
ID uint `json:"id"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
Position string `json:"position"`
|
||||
Seniority string `json:"seniority"`
|
||||
DurationMinutes int `json:"durationMinutes"`
|
||||
Questions []InterviewQuestionResponse `json:"questions"`
|
||||
}
|
||||
|
||||
type InterviewQuestionResponse struct {
|
||||
ID uint `json:"id"`
|
||||
Text string `json:"text"`
|
||||
Type string `json:"type"`
|
||||
Options []string `json:"options"`
|
||||
}
|
||||
|
||||
type InterviewResponse struct {
|
||||
Invitation InvitationResponse `json:"invitation"`
|
||||
Job InterviewJobResponse `json:"job"`
|
||||
Answers map[uint]string `json:"answers"`
|
||||
}
|
||||
|
||||
type AnswerRequest struct {
|
||||
Answer string `json:"answer"`
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue