LCOV - code coverage report
Current view: top level - usecase/profile - input.go Coverage Total Hit
Test: coverage.lcov Lines: 0.0 % 18 0
Test Date: 2026-04-14 06:42:22 Functions: - 0 0

            Line data    Source code
       1              : // Package profile は 認容済みユーザーユースケースの I/O を定義します
       2              : package profile
       3              : 
       4              : import vo "resume/internal/usecase/valueobject"
       5              : 
       6              : // =======================
       7              : // Query inputs
       8              : // =======================
       9              : 
      10              : // UserInput は 認証済みユーザーのUserIdを入力します
      11              : type UserInput struct {
      12              :         UserID uint64
      13              : }
      14              : 
      15              : // UserIdentityInput は 認証済みユーザー検索のの入力項目を表す
      16              : type UserIdentityInput struct {
      17              :         UserID    uint64
      18              :         Page      int
      19              :         PerPage   int
      20              :         Sort      string
      21              :         SortOrder string
      22              :         Query     *string
      23              : }
      24              : 
      25              : // Offset は ページング機能のスタートを表す
      26            0 : func (in UserIdentityInput) Offset() int {
      27            0 :         if in.PerPage <= 0 || in.Page < 1 || in.PerPage == -1 {
      28            0 :                 return 0
      29            0 :         }
      30            0 :         return (in.Page - 1) * in.PerPage
      31              : }
      32              : 
      33              : // Limit は ページング機能の表示件数を表す
      34            0 : func (in UserIdentityInput) Limit() int { return in.PerPage }
      35              : 
      36              : // SortCol は ページング機能のソート項目を表す
      37            0 : func (in UserIdentityInput) SortCol() string { return in.Sort }
      38              : 
      39              : // Order は ページング機能の昇降順を表す
      40            0 : func (in UserIdentityInput) Order() string { return in.SortOrder }
      41              : 
      42              : // Q は 検索波他メータを表す
      43            0 : func (in UserIdentityInput) Q() *string { return in.Query }
      44              : 
      45              : // PatchUserProfileInput は 認証済みユーザー個人情報の入力項目を表す
      46              : type PatchUserProfileInput struct {
      47              :         UserID         uint64
      48              :         FamilyName     string
      49              :         GivenName      string
      50              :         FamilyNameKana string
      51              :         GivenNameKana  string
      52              :         BirthDate      vo.PatchValue[string]
      53              :         GenderID       vo.PatchValue[uint8]
      54              :         Initial        vo.PatchValue[string]
      55              : }
      56              : 
      57              : // CreateUserAddressInput は ユーザーの住所登録入力項目を表す
      58              : type CreateUserAddressInput struct {
      59              :         UserID    uint64
      60              :         PurposeID uint64 // address_purposes.id(TINYINT UNSIGNED)
      61              :         IsPrimary bool   // 同一 (user_id, purpose_id) で true は最大 1 件
      62              : 
      63              :         // 位置情報(必須・任意の定義はマイグレーションに準拠)
      64              :         CountryCode        string  // CHAR(2) NOT NULL (ISO 3166-1 alpha-2)
      65              :         AdministrativeArea *string // VARCHAR(128) NULL
      66              :         Locality           *string // VARCHAR(128) NULL
      67              :         DependentLocality  *string // VARCHAR(128) NULL
      68              :         PostalCode         *string // VARCHAR(32)  NULL
      69              :         SortingCode        *string // VARCHAR(32)  NULL
      70              : 
      71              :         AddressLine1 string  // VARCHAR(160) NOT NULL
      72              :         AddressLine2 *string // VARCHAR(160) NULL
      73              :         AddressLine3 *string // VARCHAR(160) NULL
      74              : 
      75              :         Latitude  *float64 // DECIMAL(9,6)  NULL
      76              :         Longitude *float64 // DECIMAL(9,6)  NULL
      77              : }
      78              : 
      79              : // ListUserAddressInput は ユーザー住所一覧取得の入力項目を表します。
      80              : type ListUserAddressInput struct {
      81              :         UserID    uint64
      82              :         Page      int
      83              :         PerPage   int
      84              :         Sort      string
      85              :         SortOrder string
      86              : 
      87              :         PurposeID *uint64
      88              :         //Country   *string
      89              :         //City      *string
      90              : }
      91              : 
      92              : // Offset は ページング機能のスタートを表す
      93            0 : func (in ListUserAddressInput) Offset() int {
      94            0 :         if in.PerPage <= 0 || in.Page < 1 || in.PerPage == -1 {
      95            0 :                 return 0
      96            0 :         }
      97            0 :         return (in.Page - 1) * in.PerPage
      98              : }
      99              : 
     100              : // Limit は ページング機能の表示件数を表す
     101            0 : func (in ListUserAddressInput) Limit() int { return in.PerPage }
     102              : 
     103              : // SortCol は ページング機能のソート項目を表す
     104            0 : func (in ListUserAddressInput) SortCol() string { return in.Sort }
     105              : 
     106              : // Order は ページング機能の昇降順を表す
     107            0 : func (in ListUserAddressInput) Order() string { return in.SortOrder }
     108              : 
     109              : // PurposeIDVal は 一覧検索仕様で利用する住所目的IDを返します。
     110            0 : func (in ListUserAddressInput) PurposeIDVal() *uint64 { return in.PurposeID }
     111              : 
     112              : // UpdateUserAddressInput は ユーザー住所更新の入力項目を表す
     113              : // CreateUserAddressInput を埋め込むことで、バリデーションやマッピングを共通化する
     114              : type UpdateUserAddressInput struct {
     115              :         AddressID uint64
     116              :         CreateUserAddressInput
     117              : }
     118              : 
     119              : // DeleteUserAddressInput は ユーザー住所の入力項目を表す
     120              : // 削除時に最低限のDTOでユーザー自身の住所かどうかを表す
     121              : type DeleteUserAddressInput struct {
     122              :         UserID    uint64
     123              :         AddressID uint64
     124              : }
     125              : 
     126              : // DetailUserAddressInput は ユーザー住所の入力項目を表す
     127              : // 詳細取得時に最低限のDTOでユーザー自身の住所かどうかを表す
     128              : type DetailUserAddressInput struct {
     129              :         UserID    uint64
     130              :         AddressID uint64
     131              : }
        

Generated by: LCOV version 2.3.1-1