init
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"apskel-pos-be/internal/entities"
|
||||
"context"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type OutletSettingRepositoryImpl struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func NewOutletSettingRepositoryImpl(db *gorm.DB) *OutletSettingRepositoryImpl {
|
||||
return &OutletSettingRepositoryImpl{
|
||||
db: db,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) Create(ctx context.Context, setting *entities.OutletSetting) error {
|
||||
return r.db.WithContext(ctx).Create(setting).Error
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) GetByID(ctx context.Context, id uuid.UUID) (*entities.OutletSetting, error) {
|
||||
var setting entities.OutletSetting
|
||||
err := r.db.WithContext(ctx).First(&setting, "id = ?", id).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &setting, nil
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) GetByOutletIDAndKey(ctx context.Context, outletID uuid.UUID, key string) (*entities.OutletSetting, error) {
|
||||
var setting entities.OutletSetting
|
||||
err := r.db.WithContext(ctx).Where("outlet_id = ? AND key = ?", outletID, key).First(&setting).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &setting, nil
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) GetByOutletID(ctx context.Context, outletID uuid.UUID) ([]*entities.OutletSetting, error) {
|
||||
var settings []*entities.OutletSetting
|
||||
err := r.db.WithContext(ctx).Where("outlet_id = ?", outletID).Find(&settings).Error
|
||||
return settings, err
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) Update(ctx context.Context, setting *entities.OutletSetting) error {
|
||||
return r.db.WithContext(ctx).Save(setting).Error
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) Upsert(ctx context.Context, setting *entities.OutletSetting) error {
|
||||
return r.db.WithContext(ctx).Save(setting).Error
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) Delete(ctx context.Context, id uuid.UUID) error {
|
||||
return r.db.WithContext(ctx).Delete(&entities.OutletSetting{}, "id = ?", id).Error
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) DeleteByOutletIDAndKey(ctx context.Context, outletID uuid.UUID, key string) error {
|
||||
return r.db.WithContext(ctx).Delete(&entities.OutletSetting{}, "outlet_id = ? AND key = ?", outletID, key).Error
|
||||
}
|
||||
|
||||
func (r *OutletSettingRepositoryImpl) GetPrinterSettingsByOutletID(ctx context.Context, outletID uuid.UUID) (map[string]string, error) {
|
||||
var settings []*entities.OutletSetting
|
||||
err := r.db.WithContext(ctx).Where("outlet_id = ? AND key IN (?, ?, ?, ?, ?, ?)",
|
||||
outletID,
|
||||
"printer_outlet_name",
|
||||
"printer_address",
|
||||
"printer_phone_number",
|
||||
"printer_paper_size",
|
||||
"printer_footer",
|
||||
"printer_footer_hashtag",
|
||||
).Find(&settings).Error
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := make(map[string]string)
|
||||
for _, setting := range settings {
|
||||
result[setting.Key] = setting.Value
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
Reference in New Issue
Block a user