Add ingredieints

This commit is contained in:
Aditya Siregar
2025-08-08 00:22:28 +07:00
parent 93a3b29ae9
commit fe4f17b34d
22 changed files with 535 additions and 229 deletions
@@ -0,0 +1,26 @@
package repository
import (
"context"
"time"
"apskel-pos-be/internal/entities"
"github.com/google/uuid"
)
// TableRepositoryInterface defines the interface for table repository operations
type TableRepositoryInterface interface {
Create(ctx context.Context, table *entities.Table) error
GetByID(ctx context.Context, id uuid.UUID) (*entities.Table, error)
GetByOutletID(ctx context.Context, outletID uuid.UUID) ([]entities.Table, error)
GetByOrganizationID(ctx context.Context, organizationID uuid.UUID) ([]entities.Table, error)
Update(ctx context.Context, table *entities.Table) error
Delete(ctx context.Context, id uuid.UUID) error
List(ctx context.Context, organizationID, outletID *uuid.UUID, status *string, isActive *bool, search string, page, limit int) ([]entities.Table, int64, error)
GetAvailableTables(ctx context.Context, outletID uuid.UUID) ([]entities.Table, error)
GetOccupiedTables(ctx context.Context, outletID uuid.UUID) ([]entities.Table, error)
OccupyTable(ctx context.Context, tableID, orderID uuid.UUID, startTime *time.Time) error
ReleaseTable(ctx context.Context, tableID uuid.UUID, paymentAmount float64) error
GetByOrderID(ctx context.Context, orderID uuid.UUID) (*entities.Table, error)
}
+9 -4
View File
@@ -4,6 +4,7 @@ import (
"apskel-pos-be/internal/entities"
"context"
"fmt"
"time"
"gorm.io/gorm"
@@ -24,7 +25,7 @@ func (r *UnitRepository) Create(ctx context.Context, unit *entities.Unit) error
func (r *UnitRepository) GetByID(ctx context.Context, id, organizationID uuid.UUID) (*entities.Unit, error) {
var unit entities.Unit
err := r.db.WithContext(ctx).Where("id = ? AND organization_id = ?", id, organizationID).First(&unit).Error
err := r.db.WithContext(ctx).Where("id = ? AND organization_id = ? AND deleted_at IS NULL", id, organizationID).First(&unit).Error
if err != nil {
return nil, err
}
@@ -35,7 +36,7 @@ func (r *UnitRepository) GetAll(ctx context.Context, organizationID uuid.UUID, o
var units []*entities.Unit
var total int64
query := r.db.WithContext(ctx).Model(&entities.Unit{}).Where("organization_id = ?", organizationID)
query := r.db.WithContext(ctx).Model(&entities.Unit{}).Where("organization_id = ? AND deleted_at IS NULL", organizationID)
if outletID != nil {
query = query.Where("outlet_id = ?", *outletID)
@@ -62,7 +63,7 @@ func (r *UnitRepository) GetAll(ctx context.Context, organizationID uuid.UUID, o
}
func (r *UnitRepository) Update(ctx context.Context, unit *entities.Unit) error {
result := r.db.WithContext(ctx).Where("id = ? AND organization_id = ?", unit.ID, unit.OrganizationID).Save(unit)
result := r.db.WithContext(ctx).Where("id = ? AND organization_id = ? AND deleted_at IS NULL", unit.ID, unit.OrganizationID).Save(unit)
if result.Error != nil {
return result.Error
}
@@ -73,7 +74,11 @@ func (r *UnitRepository) Update(ctx context.Context, unit *entities.Unit) error
}
func (r *UnitRepository) Delete(ctx context.Context, id, organizationID uuid.UUID) error {
result := r.db.WithContext(ctx).Where("id = ? AND organization_id = ?", id, organizationID).Delete(&entities.Unit{})
now := time.Now()
result := r.db.WithContext(ctx).Where("id = ? AND organization_id = ? AND deleted_at IS NULL", id, organizationID).
Updates(map[string]interface{}{
"deleted_at": &now,
})
if result.Error != nil {
return result.Error
}