package dao import ( "context" "github.com/echochat/backend/app/auth/model" "gorm.io/gorm" ) type OAuthAccountDAO struct { db *gorm.DB } func NewOAuthAccountDAO(db *gorm.DB) *OAuthAccountDAO { return &OAuthAccountDAO{db: db} } func (d *OAuthAccountDAO) FindByProviderOpenID(ctx context.Context, provider, openID string) (*model.OAuthAccount, error) { var account model.OAuthAccount err := d.db.WithContext(ctx).Where("provider = ? AND open_id = ?", provider, openID).First(&account).Error if err != nil { return nil, err } return &account, nil } func (d *OAuthAccountDAO) Create(ctx context.Context, account *model.OAuthAccount) error { return d.db.WithContext(ctx).Create(account).Error } func (d *OAuthAccountDAO) Update(ctx context.Context, account *model.OAuthAccount) error { return d.db.WithContext(ctx).Save(account).Error }