Line data Source code
1 : // Package entity は スキルレベル を表すドメインエンティティです
2 : package entity
3 :
4 : import "time"
5 :
6 : // SkillLevel はスキルレベルを表すドメインエンティティです
7 : type SkillLevel struct {
8 : ID uint64 `gorm:"primaryKey;autoIncrement;column:id"`
9 : Code string `gorm:"size:64;not null;unique;column:code"`
10 : SortOrder int `gorm:"not null;default:0;column:sort_order"`
11 : IsActive bool `gorm:"not null;default:true;column:is_active"`
12 : CreatedAt time.Time `gorm:"autoCreateTime;column:created_at"`
13 : UpdatedAt time.Time `gorm:"autoUpdateTime;column:updated_at"`
14 : }
15 :
16 : // TableName は GORM のテーブル名を返します
17 0 : func (SkillLevel) TableName() string { return "skill_levels" }
18 :
19 : // SkillLevel◯◯ID は skill_levels テーブルの ID を表す定数です。
20 : // マジックナンバーを避けるために、用途 ID を参照する箇所ではこれらを利用します。
21 : const (
22 : // SkillLevelAwareID は aware の SkillLevel のIDです。
23 : SkillLevelAwareID uint64 = 1
24 :
25 : // SkillLevelPractitionerID は practitioner の SkillLevel のIDです。
26 : SkillLevelPractitionerID uint64 = 2
27 :
28 : // SkillLevelProficientID は proficient の SkillLevel のIDです。
29 : SkillLevelProficientID uint64 = 3
30 :
31 : // SkillLevelLeadID は lead の SkillLevel のIDです。
32 : SkillLevelLeadID uint64 = 4
33 :
34 : // SkillLevelExpertID は expert の SkillLevel のIDです。
35 : SkillLevelExpertID uint64 = 5
36 : )
37 :
38 : // SkillLevel◯◯Code は skill_levels テーブルの code を表す定数です。
39 : // バリデーションや分岐で code を扱う場合には、文字列リテラルではなくこれらを利用します。
40 : const (
41 : // SkillLevelAwareCode は aware を表す code です
42 : SkillLevelAwareCode string = "aware"
43 :
44 : // SkillLevelPractitionerCode は practitioner を表す code です
45 : SkillLevelPractitionerCode string = "practitioner"
46 :
47 : // SkillLevelProficientCode は proficient を表す code です
48 : SkillLevelProficientCode string = "proficient"
49 :
50 : // SkillLevelLeadCode は lead を表す code です
51 : SkillLevelLeadCode string = "lead"
52 :
53 : // SkillLevelExpertCode は expert を表す code です
54 : SkillLevelExpertCode string = "expert"
55 : )
|