package auth import ( "time" "gorm.io/gorm" ) type Role string const ( RoleAdmin Role = "admin" RoleUser Role = "user" ) type User struct { ID uint `json:"id" gorm:"primaryKey"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` DeletedAt gorm.DeletedAt `json:"-" gorm:"index"` Username string `json:"username" gorm:"type:varchar(100);uniqueIndex;not null"` PasswordHash string `json:"-" gorm:"not null"` Role Role `json:"role" gorm:"default:'user'"` SsafyID *string `json:"ssafyId,omitempty" gorm:"type:varchar(100);uniqueIndex"` } // SSAFY OAuth 응답 구조체 type SSAFYTokenResponse struct { TokenType string `json:"token_type"` AccessToken string `json:"access_token"` Scope string `json:"scope"` ExpiresIn string `json:"expires_in"` RefreshToken string `json:"refresh_token"` RefreshTokenExpiresIn int `json:"refresh_token_expires_in"` } type SSAFYUserInfo struct { UserID string `json:"userId"` Email string `json:"email"` Name string `json:"name"` }