package category_repository

import (
	"chonho/internal/api-v1/entity"
	"chonho/pkg/model"
	"gorm.io/gorm"
)

type CategoryRepository interface {
	First(id int64) (*entity.Category, error)
	Find() ([]entity.Category, error)
}

type repository struct {
	db *gorm.DB
}

func NewCategoryRepository(db *gorm.DB) *repository {
	return &repository{
		db: db,
	}
}

func (r *repository) First(id int64) (*entity.Category, error) {
	var result *entity.Category
	err := r.db.Model(&model.Category{}).Where("id = ?", id).Find(&result).Error
	return result, err
}

func (r *repository) Find() ([]entity.Category, error) {
	var result []entity.Category
	err := r.db.Model(&model.Category{}).Order("priority").Find(&result).Error
	return result, err
}
