Skip to content

Instantly share code, notes, and snippets.

@stevebaros
Created November 10, 2021 18:11
Show Gist options
  • Save stevebaros/6658276bba26bc2abcc013221f6ab174 to your computer and use it in GitHub Desktop.
Save stevebaros/6658276bba26bc2abcc013221f6ab174 to your computer and use it in GitHub Desktop.
Models( ClassLevel -> ClassList ->Subject -> PdfResource)
import "time"
type (
ClassLevel struct {
ID uint `gorm:"primaryKey"`
Number string `json:"number" gorm:"size:70;unique;not null"`
Name string `json:"name" form:"name" binding:"required" gorm:"size:60;unique;not null"`
LevelPic string `json:"level_pic" form:"level_pic" binding:"required" gorm:"not null"`
FileName string `json:"file_name" form:"file_name" binding:"required" gorm:"size:100;not null"`
Description string `json:"description" form:"description" binding:"required" gorm:"not null; type:longtext"`
UserNumber string `json:"user_number" gorm:"size:70;index;not null"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}
ClassList struct {
ID uint `gorm:"primaryKey"`
Number string `json:"number" gorm:"size:70;unique;not null"`
Name string `json:"name" form:"name" binding:"required" gorm:"size:60;unique;not null"`
UserNumber string `json:"user_number" gorm:"size:70;index;not null"`
ClassLevelNumber string `json:"class_level_number" gorm:"not null; index"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
ClassLevel ClassLevel `gorm:"foreignKey:ClassLevelNumber;references:Number"`
}
Subject struct {
ID uint `gorm:"primaryKey"`
Number string `json:"number" gorm:"size:70;unique;not null"`
Name string `json:"name" form:"name" binding:"required" gorm:"size:60;unique;not null"`
UserNumber string `json:"user_number" gorm:"size:70;index;not null"`
ClassListNumber string `json:"class_list_number" gorm:"not null; index"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
ClassList ClassList `gorm:"foreignKey:ClassListNumber;references:Number"`
}
PdfResource struct {
ID uint `gorm:"primaryKey"`
Number string `json:"number" gorm:"size:70;unique;not null"`
Name string `json:"name" form:"name" binding:"required" gorm:"size:100;not null"`
FileName string `json:"file_name" form:"file_name" binding:"required" gorm:"size:100;not null"`
UserNumber string `json:"user_number" gorm:"size:70;index;not null"`
SubjectNumber string `json:"subject_number" gorm:"not null; index"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
Subject Subject `gorm:"foreignKey:SubjectNumber;references:Number"`
}
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment