package mysql

import (
	"context"

	"gorm.io/gorm"

	v1 "github.com/pingcap-inc/pchub/model/v1"
)

type pchPermisson struct {
	db *gorm.DB
}

func newPCHPermission(ds *datastore) *pchPermisson {
	return &pchPermisson{db: ds.db}
}

func (r *pchPermisson) Create(_ context.Context, ra *v1.PCHPermission) (*v1.PCHPermission, error) {
	return ra, r.db.Create(ra).Error
}

func (r *pchPermisson) Delete(_ context.Context, ra *v1.PCHPermission) error {
	return r.db.Unscoped().Delete(ra).Error
}

func (r *pchPermisson) ListByLarkUID(ctx context.Context, larkUID string) ([]v1.PCHPermission, error) {
	var res []v1.PCHPermission
	d := r.db.
		Model(&v1.PCHPermission{}).
		Where("userLarkID = ?", larkUID).
		Find(&res)

	return res, dbNotFoundErrorWrap(d.Error)
}
