pendingauthsession.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. // Code generated by ent, DO NOT EDIT.
  2. package ent
  3. import (
  4. "encoding/json"
  5. "fmt"
  6. "strings"
  7. "time"
  8. "entgo.io/ent"
  9. "entgo.io/ent/dialect/sql"
  10. "github.com/Wei-Shaw/sub2api/ent/identityadoptiondecision"
  11. "github.com/Wei-Shaw/sub2api/ent/pendingauthsession"
  12. "github.com/Wei-Shaw/sub2api/ent/user"
  13. )
  14. // PendingAuthSession is the model entity for the PendingAuthSession schema.
  15. type PendingAuthSession struct {
  16. config `json:"-"`
  17. // ID of the ent.
  18. ID int64 `json:"id,omitempty"`
  19. // CreatedAt holds the value of the "created_at" field.
  20. CreatedAt time.Time `json:"created_at,omitempty"`
  21. // UpdatedAt holds the value of the "updated_at" field.
  22. UpdatedAt time.Time `json:"updated_at,omitempty"`
  23. // SessionToken holds the value of the "session_token" field.
  24. SessionToken string `json:"session_token,omitempty"`
  25. // Intent holds the value of the "intent" field.
  26. Intent string `json:"intent,omitempty"`
  27. // ProviderType holds the value of the "provider_type" field.
  28. ProviderType string `json:"provider_type,omitempty"`
  29. // ProviderKey holds the value of the "provider_key" field.
  30. ProviderKey string `json:"provider_key,omitempty"`
  31. // ProviderSubject holds the value of the "provider_subject" field.
  32. ProviderSubject string `json:"provider_subject,omitempty"`
  33. // TargetUserID holds the value of the "target_user_id" field.
  34. TargetUserID *int64 `json:"target_user_id,omitempty"`
  35. // RedirectTo holds the value of the "redirect_to" field.
  36. RedirectTo string `json:"redirect_to,omitempty"`
  37. // ResolvedEmail holds the value of the "resolved_email" field.
  38. ResolvedEmail string `json:"resolved_email,omitempty"`
  39. // RegistrationPasswordHash holds the value of the "registration_password_hash" field.
  40. RegistrationPasswordHash string `json:"registration_password_hash,omitempty"`
  41. // UpstreamIdentityClaims holds the value of the "upstream_identity_claims" field.
  42. UpstreamIdentityClaims map[string]interface{} `json:"upstream_identity_claims,omitempty"`
  43. // LocalFlowState holds the value of the "local_flow_state" field.
  44. LocalFlowState map[string]interface{} `json:"local_flow_state,omitempty"`
  45. // BrowserSessionKey holds the value of the "browser_session_key" field.
  46. BrowserSessionKey string `json:"browser_session_key,omitempty"`
  47. // CompletionCodeHash holds the value of the "completion_code_hash" field.
  48. CompletionCodeHash string `json:"completion_code_hash,omitempty"`
  49. // CompletionCodeExpiresAt holds the value of the "completion_code_expires_at" field.
  50. CompletionCodeExpiresAt *time.Time `json:"completion_code_expires_at,omitempty"`
  51. // EmailVerifiedAt holds the value of the "email_verified_at" field.
  52. EmailVerifiedAt *time.Time `json:"email_verified_at,omitempty"`
  53. // PasswordVerifiedAt holds the value of the "password_verified_at" field.
  54. PasswordVerifiedAt *time.Time `json:"password_verified_at,omitempty"`
  55. // TotpVerifiedAt holds the value of the "totp_verified_at" field.
  56. TotpVerifiedAt *time.Time `json:"totp_verified_at,omitempty"`
  57. // ExpiresAt holds the value of the "expires_at" field.
  58. ExpiresAt time.Time `json:"expires_at,omitempty"`
  59. // ConsumedAt holds the value of the "consumed_at" field.
  60. ConsumedAt *time.Time `json:"consumed_at,omitempty"`
  61. // Edges holds the relations/edges for other nodes in the graph.
  62. // The values are being populated by the PendingAuthSessionQuery when eager-loading is set.
  63. Edges PendingAuthSessionEdges `json:"edges"`
  64. selectValues sql.SelectValues
  65. }
  66. // PendingAuthSessionEdges holds the relations/edges for other nodes in the graph.
  67. type PendingAuthSessionEdges struct {
  68. // TargetUser holds the value of the target_user edge.
  69. TargetUser *User `json:"target_user,omitempty"`
  70. // AdoptionDecision holds the value of the adoption_decision edge.
  71. AdoptionDecision *IdentityAdoptionDecision `json:"adoption_decision,omitempty"`
  72. // loadedTypes holds the information for reporting if a
  73. // type was loaded (or requested) in eager-loading or not.
  74. loadedTypes [2]bool
  75. }
  76. // TargetUserOrErr returns the TargetUser value or an error if the edge
  77. // was not loaded in eager-loading, or loaded but was not found.
  78. func (e PendingAuthSessionEdges) TargetUserOrErr() (*User, error) {
  79. if e.TargetUser != nil {
  80. return e.TargetUser, nil
  81. } else if e.loadedTypes[0] {
  82. return nil, &NotFoundError{label: user.Label}
  83. }
  84. return nil, &NotLoadedError{edge: "target_user"}
  85. }
  86. // AdoptionDecisionOrErr returns the AdoptionDecision value or an error if the edge
  87. // was not loaded in eager-loading, or loaded but was not found.
  88. func (e PendingAuthSessionEdges) AdoptionDecisionOrErr() (*IdentityAdoptionDecision, error) {
  89. if e.AdoptionDecision != nil {
  90. return e.AdoptionDecision, nil
  91. } else if e.loadedTypes[1] {
  92. return nil, &NotFoundError{label: identityadoptiondecision.Label}
  93. }
  94. return nil, &NotLoadedError{edge: "adoption_decision"}
  95. }
  96. // scanValues returns the types for scanning values from sql.Rows.
  97. func (*PendingAuthSession) scanValues(columns []string) ([]any, error) {
  98. values := make([]any, len(columns))
  99. for i := range columns {
  100. switch columns[i] {
  101. case pendingauthsession.FieldUpstreamIdentityClaims, pendingauthsession.FieldLocalFlowState:
  102. values[i] = new([]byte)
  103. case pendingauthsession.FieldID, pendingauthsession.FieldTargetUserID:
  104. values[i] = new(sql.NullInt64)
  105. case pendingauthsession.FieldSessionToken, pendingauthsession.FieldIntent, pendingauthsession.FieldProviderType, pendingauthsession.FieldProviderKey, pendingauthsession.FieldProviderSubject, pendingauthsession.FieldRedirectTo, pendingauthsession.FieldResolvedEmail, pendingauthsession.FieldRegistrationPasswordHash, pendingauthsession.FieldBrowserSessionKey, pendingauthsession.FieldCompletionCodeHash:
  106. values[i] = new(sql.NullString)
  107. case pendingauthsession.FieldCreatedAt, pendingauthsession.FieldUpdatedAt, pendingauthsession.FieldCompletionCodeExpiresAt, pendingauthsession.FieldEmailVerifiedAt, pendingauthsession.FieldPasswordVerifiedAt, pendingauthsession.FieldTotpVerifiedAt, pendingauthsession.FieldExpiresAt, pendingauthsession.FieldConsumedAt:
  108. values[i] = new(sql.NullTime)
  109. default:
  110. values[i] = new(sql.UnknownType)
  111. }
  112. }
  113. return values, nil
  114. }
  115. // assignValues assigns the values that were returned from sql.Rows (after scanning)
  116. // to the PendingAuthSession fields.
  117. func (_m *PendingAuthSession) assignValues(columns []string, values []any) error {
  118. if m, n := len(values), len(columns); m < n {
  119. return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
  120. }
  121. for i := range columns {
  122. switch columns[i] {
  123. case pendingauthsession.FieldID:
  124. value, ok := values[i].(*sql.NullInt64)
  125. if !ok {
  126. return fmt.Errorf("unexpected type %T for field id", value)
  127. }
  128. _m.ID = int64(value.Int64)
  129. case pendingauthsession.FieldCreatedAt:
  130. if value, ok := values[i].(*sql.NullTime); !ok {
  131. return fmt.Errorf("unexpected type %T for field created_at", values[i])
  132. } else if value.Valid {
  133. _m.CreatedAt = value.Time
  134. }
  135. case pendingauthsession.FieldUpdatedAt:
  136. if value, ok := values[i].(*sql.NullTime); !ok {
  137. return fmt.Errorf("unexpected type %T for field updated_at", values[i])
  138. } else if value.Valid {
  139. _m.UpdatedAt = value.Time
  140. }
  141. case pendingauthsession.FieldSessionToken:
  142. if value, ok := values[i].(*sql.NullString); !ok {
  143. return fmt.Errorf("unexpected type %T for field session_token", values[i])
  144. } else if value.Valid {
  145. _m.SessionToken = value.String
  146. }
  147. case pendingauthsession.FieldIntent:
  148. if value, ok := values[i].(*sql.NullString); !ok {
  149. return fmt.Errorf("unexpected type %T for field intent", values[i])
  150. } else if value.Valid {
  151. _m.Intent = value.String
  152. }
  153. case pendingauthsession.FieldProviderType:
  154. if value, ok := values[i].(*sql.NullString); !ok {
  155. return fmt.Errorf("unexpected type %T for field provider_type", values[i])
  156. } else if value.Valid {
  157. _m.ProviderType = value.String
  158. }
  159. case pendingauthsession.FieldProviderKey:
  160. if value, ok := values[i].(*sql.NullString); !ok {
  161. return fmt.Errorf("unexpected type %T for field provider_key", values[i])
  162. } else if value.Valid {
  163. _m.ProviderKey = value.String
  164. }
  165. case pendingauthsession.FieldProviderSubject:
  166. if value, ok := values[i].(*sql.NullString); !ok {
  167. return fmt.Errorf("unexpected type %T for field provider_subject", values[i])
  168. } else if value.Valid {
  169. _m.ProviderSubject = value.String
  170. }
  171. case pendingauthsession.FieldTargetUserID:
  172. if value, ok := values[i].(*sql.NullInt64); !ok {
  173. return fmt.Errorf("unexpected type %T for field target_user_id", values[i])
  174. } else if value.Valid {
  175. _m.TargetUserID = new(int64)
  176. *_m.TargetUserID = value.Int64
  177. }
  178. case pendingauthsession.FieldRedirectTo:
  179. if value, ok := values[i].(*sql.NullString); !ok {
  180. return fmt.Errorf("unexpected type %T for field redirect_to", values[i])
  181. } else if value.Valid {
  182. _m.RedirectTo = value.String
  183. }
  184. case pendingauthsession.FieldResolvedEmail:
  185. if value, ok := values[i].(*sql.NullString); !ok {
  186. return fmt.Errorf("unexpected type %T for field resolved_email", values[i])
  187. } else if value.Valid {
  188. _m.ResolvedEmail = value.String
  189. }
  190. case pendingauthsession.FieldRegistrationPasswordHash:
  191. if value, ok := values[i].(*sql.NullString); !ok {
  192. return fmt.Errorf("unexpected type %T for field registration_password_hash", values[i])
  193. } else if value.Valid {
  194. _m.RegistrationPasswordHash = value.String
  195. }
  196. case pendingauthsession.FieldUpstreamIdentityClaims:
  197. if value, ok := values[i].(*[]byte); !ok {
  198. return fmt.Errorf("unexpected type %T for field upstream_identity_claims", values[i])
  199. } else if value != nil && len(*value) > 0 {
  200. if err := json.Unmarshal(*value, &_m.UpstreamIdentityClaims); err != nil {
  201. return fmt.Errorf("unmarshal field upstream_identity_claims: %w", err)
  202. }
  203. }
  204. case pendingauthsession.FieldLocalFlowState:
  205. if value, ok := values[i].(*[]byte); !ok {
  206. return fmt.Errorf("unexpected type %T for field local_flow_state", values[i])
  207. } else if value != nil && len(*value) > 0 {
  208. if err := json.Unmarshal(*value, &_m.LocalFlowState); err != nil {
  209. return fmt.Errorf("unmarshal field local_flow_state: %w", err)
  210. }
  211. }
  212. case pendingauthsession.FieldBrowserSessionKey:
  213. if value, ok := values[i].(*sql.NullString); !ok {
  214. return fmt.Errorf("unexpected type %T for field browser_session_key", values[i])
  215. } else if value.Valid {
  216. _m.BrowserSessionKey = value.String
  217. }
  218. case pendingauthsession.FieldCompletionCodeHash:
  219. if value, ok := values[i].(*sql.NullString); !ok {
  220. return fmt.Errorf("unexpected type %T for field completion_code_hash", values[i])
  221. } else if value.Valid {
  222. _m.CompletionCodeHash = value.String
  223. }
  224. case pendingauthsession.FieldCompletionCodeExpiresAt:
  225. if value, ok := values[i].(*sql.NullTime); !ok {
  226. return fmt.Errorf("unexpected type %T for field completion_code_expires_at", values[i])
  227. } else if value.Valid {
  228. _m.CompletionCodeExpiresAt = new(time.Time)
  229. *_m.CompletionCodeExpiresAt = value.Time
  230. }
  231. case pendingauthsession.FieldEmailVerifiedAt:
  232. if value, ok := values[i].(*sql.NullTime); !ok {
  233. return fmt.Errorf("unexpected type %T for field email_verified_at", values[i])
  234. } else if value.Valid {
  235. _m.EmailVerifiedAt = new(time.Time)
  236. *_m.EmailVerifiedAt = value.Time
  237. }
  238. case pendingauthsession.FieldPasswordVerifiedAt:
  239. if value, ok := values[i].(*sql.NullTime); !ok {
  240. return fmt.Errorf("unexpected type %T for field password_verified_at", values[i])
  241. } else if value.Valid {
  242. _m.PasswordVerifiedAt = new(time.Time)
  243. *_m.PasswordVerifiedAt = value.Time
  244. }
  245. case pendingauthsession.FieldTotpVerifiedAt:
  246. if value, ok := values[i].(*sql.NullTime); !ok {
  247. return fmt.Errorf("unexpected type %T for field totp_verified_at", values[i])
  248. } else if value.Valid {
  249. _m.TotpVerifiedAt = new(time.Time)
  250. *_m.TotpVerifiedAt = value.Time
  251. }
  252. case pendingauthsession.FieldExpiresAt:
  253. if value, ok := values[i].(*sql.NullTime); !ok {
  254. return fmt.Errorf("unexpected type %T for field expires_at", values[i])
  255. } else if value.Valid {
  256. _m.ExpiresAt = value.Time
  257. }
  258. case pendingauthsession.FieldConsumedAt:
  259. if value, ok := values[i].(*sql.NullTime); !ok {
  260. return fmt.Errorf("unexpected type %T for field consumed_at", values[i])
  261. } else if value.Valid {
  262. _m.ConsumedAt = new(time.Time)
  263. *_m.ConsumedAt = value.Time
  264. }
  265. default:
  266. _m.selectValues.Set(columns[i], values[i])
  267. }
  268. }
  269. return nil
  270. }
  271. // Value returns the ent.Value that was dynamically selected and assigned to the PendingAuthSession.
  272. // This includes values selected through modifiers, order, etc.
  273. func (_m *PendingAuthSession) Value(name string) (ent.Value, error) {
  274. return _m.selectValues.Get(name)
  275. }
  276. // QueryTargetUser queries the "target_user" edge of the PendingAuthSession entity.
  277. func (_m *PendingAuthSession) QueryTargetUser() *UserQuery {
  278. return NewPendingAuthSessionClient(_m.config).QueryTargetUser(_m)
  279. }
  280. // QueryAdoptionDecision queries the "adoption_decision" edge of the PendingAuthSession entity.
  281. func (_m *PendingAuthSession) QueryAdoptionDecision() *IdentityAdoptionDecisionQuery {
  282. return NewPendingAuthSessionClient(_m.config).QueryAdoptionDecision(_m)
  283. }
  284. // Update returns a builder for updating this PendingAuthSession.
  285. // Note that you need to call PendingAuthSession.Unwrap() before calling this method if this PendingAuthSession
  286. // was returned from a transaction, and the transaction was committed or rolled back.
  287. func (_m *PendingAuthSession) Update() *PendingAuthSessionUpdateOne {
  288. return NewPendingAuthSessionClient(_m.config).UpdateOne(_m)
  289. }
  290. // Unwrap unwraps the PendingAuthSession entity that was returned from a transaction after it was closed,
  291. // so that all future queries will be executed through the driver which created the transaction.
  292. func (_m *PendingAuthSession) Unwrap() *PendingAuthSession {
  293. _tx, ok := _m.config.driver.(*txDriver)
  294. if !ok {
  295. panic("ent: PendingAuthSession is not a transactional entity")
  296. }
  297. _m.config.driver = _tx.drv
  298. return _m
  299. }
  300. // String implements the fmt.Stringer.
  301. func (_m *PendingAuthSession) String() string {
  302. var builder strings.Builder
  303. builder.WriteString("PendingAuthSession(")
  304. builder.WriteString(fmt.Sprintf("id=%v, ", _m.ID))
  305. builder.WriteString("created_at=")
  306. builder.WriteString(_m.CreatedAt.Format(time.ANSIC))
  307. builder.WriteString(", ")
  308. builder.WriteString("updated_at=")
  309. builder.WriteString(_m.UpdatedAt.Format(time.ANSIC))
  310. builder.WriteString(", ")
  311. builder.WriteString("session_token=")
  312. builder.WriteString(_m.SessionToken)
  313. builder.WriteString(", ")
  314. builder.WriteString("intent=")
  315. builder.WriteString(_m.Intent)
  316. builder.WriteString(", ")
  317. builder.WriteString("provider_type=")
  318. builder.WriteString(_m.ProviderType)
  319. builder.WriteString(", ")
  320. builder.WriteString("provider_key=")
  321. builder.WriteString(_m.ProviderKey)
  322. builder.WriteString(", ")
  323. builder.WriteString("provider_subject=")
  324. builder.WriteString(_m.ProviderSubject)
  325. builder.WriteString(", ")
  326. if v := _m.TargetUserID; v != nil {
  327. builder.WriteString("target_user_id=")
  328. builder.WriteString(fmt.Sprintf("%v", *v))
  329. }
  330. builder.WriteString(", ")
  331. builder.WriteString("redirect_to=")
  332. builder.WriteString(_m.RedirectTo)
  333. builder.WriteString(", ")
  334. builder.WriteString("resolved_email=")
  335. builder.WriteString(_m.ResolvedEmail)
  336. builder.WriteString(", ")
  337. builder.WriteString("registration_password_hash=")
  338. builder.WriteString(_m.RegistrationPasswordHash)
  339. builder.WriteString(", ")
  340. builder.WriteString("upstream_identity_claims=")
  341. builder.WriteString(fmt.Sprintf("%v", _m.UpstreamIdentityClaims))
  342. builder.WriteString(", ")
  343. builder.WriteString("local_flow_state=")
  344. builder.WriteString(fmt.Sprintf("%v", _m.LocalFlowState))
  345. builder.WriteString(", ")
  346. builder.WriteString("browser_session_key=")
  347. builder.WriteString(_m.BrowserSessionKey)
  348. builder.WriteString(", ")
  349. builder.WriteString("completion_code_hash=")
  350. builder.WriteString(_m.CompletionCodeHash)
  351. builder.WriteString(", ")
  352. if v := _m.CompletionCodeExpiresAt; v != nil {
  353. builder.WriteString("completion_code_expires_at=")
  354. builder.WriteString(v.Format(time.ANSIC))
  355. }
  356. builder.WriteString(", ")
  357. if v := _m.EmailVerifiedAt; v != nil {
  358. builder.WriteString("email_verified_at=")
  359. builder.WriteString(v.Format(time.ANSIC))
  360. }
  361. builder.WriteString(", ")
  362. if v := _m.PasswordVerifiedAt; v != nil {
  363. builder.WriteString("password_verified_at=")
  364. builder.WriteString(v.Format(time.ANSIC))
  365. }
  366. builder.WriteString(", ")
  367. if v := _m.TotpVerifiedAt; v != nil {
  368. builder.WriteString("totp_verified_at=")
  369. builder.WriteString(v.Format(time.ANSIC))
  370. }
  371. builder.WriteString(", ")
  372. builder.WriteString("expires_at=")
  373. builder.WriteString(_m.ExpiresAt.Format(time.ANSIC))
  374. builder.WriteString(", ")
  375. if v := _m.ConsumedAt; v != nil {
  376. builder.WriteString("consumed_at=")
  377. builder.WriteString(v.Format(time.ANSIC))
  378. }
  379. builder.WriteByte(')')
  380. return builder.String()
  381. }
  382. // PendingAuthSessions is a parsable slice of PendingAuthSession.
  383. type PendingAuthSessions []*PendingAuthSession