package repositories import ( "app/models" "time" "gorm.io/gorm" ) type Orders interface { Create(o *models.Order) error GetOrders(id uint) ([]models.Order, error) GetOrdersByDate(start time.Time, end time.Time) ([]models.Order, error) Delete(id uint) error } type Orders_repository struct { DB *gorm.DB } func newOrdersRepository(db *gorm.DB) Orders { return &Orders_repository{DB: db} } func (r *Orders_repository) Create(order *models.Order) error { if err := r.DB.Create(&order).Error; err != nil { return err } return nil } func (r *Orders_repository) GetOrders(id uint) ([]models.Order, error) { var orders []models.Order if err := r.DB.Where("is_removed = ?", false).Where("user_id").Find(&orders).Error; err != nil { return nil, err } return orders, nil } func (r *Orders_repository) GetOrdersByDate(start time.Time, end time.Time) ([]models.Order, error) { var orders []models.Order if err := r.DB.Where("is_removed = ?", false).Where("created_at BETWEEN ? and ?", start, end).Find(&orders).Error; err != nil { return nil, err } return orders, nil } func (r *Orders_repository) Delete(id uint) error { var order models.Order if err := r.DB.Where("order_id = ?", id).Model(&order).Update("is_removed", true).Error; err != nil { return err } return nil }