// UserOAuthBinding stores the binding relationship between users and custom OAuth providers
typeUserOAuthBindingstruct{
Idint`json:"id" gorm:"primaryKey"`
UserIdint`json:"user_id" gorm:"index;not null"`// User ID
ProviderIdint`json:"provider_id" gorm:"index;not null"`// Custom OAuth provider ID
ProviderUserIdstring`json:"provider_user_id" gorm:"type:varchar(256);not null"`// User ID from OAuth provider
UserIdint`json:"user_id" gorm:"not null;uniqueIndex:ux_user_provider"`// User ID - one binding per user per provider
ProviderIdint`json:"provider_id" gorm:"not null;uniqueIndex:ux_user_provider;uniqueIndex:ux_provider_userid"`// Custom OAuth provider ID
ProviderUserIdstring`json:"provider_user_id" gorm:"type:varchar(256);not null;uniqueIndex:ux_provider_userid"`// User ID from OAuth provider - one OAuth account per provider
CreatedAttime.Time`json:"created_at"`
// Composite unique index to prevent duplicate bindings
// One OAuth account can only be bound to one user