package services import ( "GoMembership/internal/models" "gorm.io/gorm" ) type CarServiceInterface interface { Create(car *models.Car) (*models.Car, error) Update(car *models.Car) (*models.Car, error) Delete(carID *uint) error FromID(id uint) (*models.Car, error) GetAll() (*[]models.Car, error) } type CarService struct { DB *gorm.DB } // Create a new car func (s *CarService) Create(car *models.Car) (*models.Car, error) { err := car.Create(s.DB) if err != nil { return nil, err } return car, nil } // Update an existing car func (s *CarService) Update(car *models.Car) (*models.Car, error) { err := car.Update(s.DB) if err != nil { return nil, err } return car, nil } // Delete a car (soft delete) func (s *CarService) Delete(carID *uint) error { var car models.Car err := car.FromID(s.DB, *carID) if err != nil { return err } return car.Delete(s.DB) } // GetByID fetches a car by its ID func (s *CarService) FromID(id uint) (*models.Car, error) { car := &models.Car{} err := car.FromID(s.DB, id) if err != nil { return nil, err } return car, nil } // GetAll retrieves all cars func (s *CarService) GetAll() (*[]models.Car, error) { cars, err := models.GetAllCars(s.DB) if err != nil { return nil, err } return &cars, nil }