Line data Source code
1 : // Package skill は Skillに関するInput DTOを提供します
2 : package skill
3 :
4 : // ListUserSkillInput は Skill一覧取得のための入力DTOです
5 : type ListUserSkillInput struct {
6 : UserID uint64 `json:"user_id"`
7 : Page int `json:"page"`
8 : PerPage int `json:"per_page"`
9 : Sort string `json:"sort"`
10 : SortOrder string `json:"sort_order"`
11 : SkillCategoryID *uint64 `json:"skill_category_id"`
12 : SKillLevelID *uint64 `json:"skill_level_id"`
13 : ExperienceID *uint64 `json:"experience_id"`
14 : SkillNameNorm *string `json:"skill_name"`
15 : }
16 :
17 : // Offset はページネーションのオフセットを計算します
18 0 : func (in ListUserSkillInput) Offset() int {
19 0 : if in.PerPage <= 0 || in.Page < 1 || in.PerPage == -1 {
20 0 : return 0
21 0 : }
22 0 : return (in.Page - 1) * in.PerPage
23 : }
24 :
25 : // Limit は ページング機能の表示件数を表す
26 0 : func (in ListUserSkillInput) Limit() int { return in.PerPage }
27 :
28 : // SortCol は ページング機能のソート項目を表す
29 0 : func (in ListUserSkillInput) SortCol() string { return in.Sort }
30 :
31 : // Order は ページング機能のソート順を表す
32 0 : func (in ListUserSkillInput) Order() string { return in.SortOrder }
33 :
34 : // SkillCategoryIDVal は SkillCategoryIDの値を取得します
35 0 : func (in ListUserSkillInput) SkillCategoryIDVal() *uint64 { return in.SkillCategoryID }
36 :
37 : // SKillLevelIDVal は SkillLevelIDの値を取得します
38 0 : func (in ListUserSkillInput) SKillLevelIDVal() *uint64 { return in.SKillLevelID }
39 :
40 : // ExperienceIDVal は ExperienceIDの値を取得します
41 0 : func (in ListUserSkillInput) ExperienceIDVal() *uint64 { return in.ExperienceID }
42 :
43 : // SkillNameNormVal は SkillNameNormの値を取得します
44 0 : func (in ListUserSkillInput) SkillNameNormVal() *string { return in.SkillNameNorm }
45 :
46 : // SuggestUserSkillInput は Skill候補取得のための入力DTOです
47 : type SuggestUserSkillInput struct {
48 : SkillCategoryID *uint64 `json:"skill_category_id"`
49 : Q *string `json:"q"`
50 : Limit *int `json:"limit"`
51 : WithDeleted *bool `json:"with_deleted"`
52 : }
53 :
54 : // SkillCategoryIDVal は SkillCategoryIDの値を取得します
55 0 : func (in SuggestUserSkillInput) SkillCategoryIDVal() *uint64 { return in.SkillCategoryID }
56 :
57 : // QVal は Qの値を取得します
58 0 : func (in SuggestUserSkillInput) QVal() *string { return in.Q }
59 :
60 : // LimitVal は Limitの値を取得します
61 0 : func (in SuggestUserSkillInput) LimitVal() *int { return in.Limit }
62 :
63 : // WithDeletedVal は WithDeletedの値を取得します
64 0 : func (in SuggestUserSkillInput) WithDeletedVal() *bool { return in.WithDeleted }
65 :
66 : // CreateUserSkillInput は Skill作成のための入力DTOです
67 : type CreateUserSkillInput struct {
68 : UserID uint64 `json:"user_id"`
69 : SkillCategoryID uint64 `json:"skill_category_id"`
70 : SkillLevelID uint64 `json:"skill_level_id"`
71 : ExperienceID uint64 `json:"experience_id"`
72 : SkillName string `json:"skill_name"`
73 : Evidence string `json:"evidence,omitempty"`
74 : }
75 :
76 : // UpdateUserSkillInput は Skill更新のための入力DTOです
77 : type UpdateUserSkillInput struct {
78 : ID uint64 `json:"id"`
79 : UserID uint64 `json:"user_id"`
80 : SkillCategoryID uint64 `json:"skill_category_id"`
81 : SkillLevelID uint64 `json:"skill_level_id"`
82 : ExperienceID uint64 `json:"experience_id"`
83 : SkillName string `json:"skill_name"`
84 : Evidence string `json:"evidence,omitempty"`
85 : }
86 :
87 : // DeleteUserSkillInput は Skill削除のための入力DTOです
88 : type DeleteUserSkillInput struct {
89 : ID uint64 `json:"id"`
90 : UserID uint64 `json:"user_id"`
91 : }
92 :
93 : // OrderUserSkillInput は Skillの並び順変更のための入力DTOです
94 : type OrderUserSkillInput struct {
95 : UserID uint64 `json:"user_id"`
96 : IDs []uint64 `json:"ids"`
97 : }
98 :
99 : // HasUserSkillInput は指定されたユーザーがスキルを持っているかを確認するための入力DTOです
100 : type HasUserSkillInput struct {
101 : UserID uint64 `json:"user_id"`
102 : }
|