Line data Source code
1 : // Package entity は住所の用途を表すドメインエンティティです
2 : package entity
3 :
4 : import "time"
5 :
6 : // AddressPurpose は住所の用途を表すドメインエンティティです
7 : type AddressPurpose struct {
8 : ID uint64 `gorm:"primaryKey;autoIncrement;column:id"`
9 : Code string `gorm:"size:64;not null;unique;column:code"`
10 : DisplayName string `gorm:"autoUpdateTime;column:display_name"`
11 : SortOrder int `gorm:"not null;default:0;column:sort_order"`
12 : IsActive bool `gorm:"not null;default:true;column:is_active"`
13 : CreatedAt time.Time `gorm:"autoCreateTime;column:created_at"`
14 : UpdatedAt time.Time `gorm:"autoUpdateTime;column:updated_at"`
15 : }
16 :
17 : // TableName は GORM のテーブル名を返します。
18 0 : func (AddressPurpose) TableName() string {
19 0 : return "address_purposes"
20 0 : }
21 :
22 : // AddressPurposeID◯◯ は address_purposes テーブルの ID を表す定数です。
23 : // マジックナンバーを避けるために、用途 ID を参照する箇所ではこれらを利用します。
24 : const (
25 : // AddressPurposeIDHome は code=home の AddressPurpose のIDです。
26 : AddressPurposeIDHome uint64 = 1
27 :
28 : // AddressPurposeIDContact は code=contact の AddressPurpose のIDです。
29 : AddressPurposeIDContact uint64 = 2
30 :
31 : // AddressPurposeIDOffice は code=office の AddressPurpose のIDです。
32 : AddressPurposeIDOffice uint64 = 3
33 :
34 : // AddressPurposeIDShipping は code=shipping の AddressPurpose のIDです。
35 : AddressPurposeIDShipping uint64 = 4
36 :
37 : // AddressPurposeIDBilling は code=billing の AddressPurpose のIDです。
38 : AddressPurposeIDBilling uint64 = 5
39 :
40 : // AddressPurposeIDOther は code=other の AddressPurpose のIDです。
41 : AddressPurposeIDOther uint64 = 6
42 : )
43 :
44 : // AddressPurposeCode◯◯ は address_purposes テーブルの code を表す定数です。
45 : // バリデーションや分岐で code を扱う場合には、文字列リテラルではなくこれらを利用します。
46 : const (
47 : // AddressPurposeCodeHome は home 用途を表す code です。
48 : AddressPurposeCodeHome = "home"
49 :
50 : // AddressPurposeCodeContact は contact 用途を表す code です。
51 : AddressPurposeCodeContact = "contact"
52 :
53 : // AddressPurposeCodeOffice は office 用途を表す code です。
54 : AddressPurposeCodeOffice = "office"
55 :
56 : // AddressPurposeCodeShipping は shipping 用途を表す code です。
57 : AddressPurposeCodeShipping = "shipping"
58 :
59 : // AddressPurposeCodeBilling は billing 用途を表す code です。
60 : AddressPurposeCodeBilling = "billing"
61 :
62 : // AddressPurposeCodeOther は other 用途を表す code です。
63 : AddressPurposeCodeOther = "other"
64 : )
|