Some checks failed
Deploy with Docker Compose / deploy (push) Has been cancelled
Full CRUD GraphQL API for tracking job applications with status workflow. Frontend component in CV view, hidden from print. Login now redirects to intended route after auth via query param. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
83 lines
2.8 KiB
Go
83 lines
2.8 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type User struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`
|
|
Username string `gorm:"uniqueIndex" json:"username"`
|
|
Password []byte `json:"-"`
|
|
Admin bool `json:"admin"`
|
|
}
|
|
|
|
type Post struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`
|
|
Title string `gorm:"not null" json:"title"`
|
|
AuthorID uint `json:"-"`
|
|
Author *User `gorm:"foreignKey:AuthorID" json:"author"`
|
|
Content string `json:"content"`
|
|
}
|
|
|
|
type Message struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
Content string `json:"text"`
|
|
AuthorID uint `json:"authorId"`
|
|
FileURL string `json:"fileUrl,omitempty"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`
|
|
}
|
|
|
|
type Activity struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`
|
|
Type string `json:"type"`
|
|
Name string `json:"name"`
|
|
Link *string `json:"link"`
|
|
}
|
|
|
|
type Favorite struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`
|
|
Type string `json:"type"`
|
|
Name string `json:"name"`
|
|
Link *string `json:"link"`
|
|
}
|
|
|
|
type Rowing struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`
|
|
Date time.Time `json:"date"`
|
|
Time uint64 `json:"time"`
|
|
Distance uint64 `json:"distance"`
|
|
TimePer500m float64 `json:"timePer500m"`
|
|
Calories float64 `json:"calories"`
|
|
}
|
|
|
|
type JobApplication struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`
|
|
JobTitle string `gorm:"not null" json:"jobTitle"`
|
|
Company string `gorm:"not null" json:"company"`
|
|
Location *string `json:"location"`
|
|
URL *string `json:"url"`
|
|
Status string `gorm:"not null" json:"status"`
|
|
Notes *string `json:"notes"`
|
|
AppliedAt *time.Time `json:"appliedAt"`
|
|
}
|