// UserOAuthBinding stores the binding relationship between users and custom OAuth providers
typeUserOAuthBindingstruct{
Idint`json:"id" gorm:"primaryKey"`
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
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