package main

import (
	"github.com/tidbcloud/account/internel/dao/entity"
	"gorm.io/gorm"
)

type UserProjectBinding struct {
	UserID    entity.ID
	ProjectID entity.ID
}

func (b UserProjectBinding) TableName() string {
	return "user_projects"
}

type Database struct {
	Db *gorm.DB
}

func NewDatabase(db *gorm.DB) *Database {
	return &Database{
		Db: db,
	}
}

func (d *Database) ReadRoleBindings() ([]entity.RoleBinding, error) {
	var roles []entity.RoleBinding
	err := d.Db.Find(&roles).Error
	return roles, err
}

func (d *Database) ReadUsers() ([]entity.User, error) {
	var users []entity.User
	err := d.Db.Find(&users).Error
	return users, err
}

func (d *Database) ReadUserProjectBindings() ([]UserProjectBinding, error) {
	var bindings []UserProjectBinding
	err := d.Db.Find(&bindings).Error
	return bindings, err
}
