Skip to content

Commit

Permalink
add car_model_color_service
Browse files Browse the repository at this point in the history
  • Loading branch information
alireza-fa committed Dec 23, 2023
1 parent 5a4013f commit ad6e30b
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 5 deletions.
26 changes: 21 additions & 5 deletions src/api/dto/car.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,25 @@ type UpdateCarModelRequest struct {
}

type CarModelResponse struct {
Id int `json:"id"`
Name string `json:"name"`
CarType CarTypeResponse `json:"carType"`
Company CompanyResponse `json:"company"`
Gearbox GearboxResponse `json:"gearbox"`
Id int `json:"id"`
Name string `json:"name"`
CarType CarTypeResponse `json:"carType"`
Company CompanyResponse `json:"company"`
Gearbox GearboxResponse `json:"gearbox"`
Colors []CarModelColorResponse `json:"colors"`
}

type CreateCarModelColorRequest struct {
CarModelId int `json:"carModelId" binding:"required"`
ColorId int `json:"colorId" binding:"required"`
}

type UpdateCarModelColorRequest struct {
CarModelId int `json:"carModelId,omitempty"`
ColorId int `json:"colorId,omitempty"`
}

type CarModelColorResponse struct {
Id int `json:"id"`
Color string `json:"color"`
}
48 changes: 48 additions & 0 deletions src/services/car_model_color_service.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package services

import (
"context"
"github.com/alireza-fa/golang-car-shop/api/dto"
"github.com/alireza-fa/golang-car-shop/config"
"github.com/alireza-fa/golang-car-shop/data/db"
"github.com/alireza-fa/golang-car-shop/data/models"
"github.com/alireza-fa/golang-car-shop/pkg/logging"
)

type CarModelColorService struct {
base *BaseService[models.CarModelColor, dto.CreateCarModelColorRequest, dto.UpdateCarModelColorRequest, dto.CarModelColorResponse]
}

func NewCarModelColorService(cfg *config.Config) *CarModelColorService {
return &CarModelColorService{
base: &BaseService[models.CarModelColor, dto.CreateCarModelColorRequest, dto.UpdateCarModelColorRequest, dto.CarModelColorResponse]{
Database: db.GetDb(),
Logger: logging.NewLogger(cfg),
},
}
}

// Create carModelColor
func (s *CarModelColorService) Create(ctx context.Context, req *dto.CreateCarModelColorRequest) (*dto.CarModelColorResponse, error) {
return s.base.Create(ctx, req)
}

// Update carModelColor
func (s *CarModelColorService) Update(ctx context.Context, req *dto.UpdateCarModelColorRequest, id int) (*dto.CarModelColorResponse, error) {
return s.base.Update(ctx, id, req)
}

// Delete carModelColor
func (s *CarModelColorService) Delete(ctx context.Context, id int) error {
return s.base.Delete(ctx, id)
}

// GetById carModelColor
func (s *CarModelColorService) GetById(ctx context.Context, id int) (*dto.CarModelColorResponse, error) {
return s.base.GetById(ctx, id)
}

// GetByFilter carModelColor
func (s *CarModelColorService) GetByFilter(ctx context.Context, req *dto.PaginationInputWithFilter) (*dto.PagedList[dto.CarModelColorResponse], error) {
return s.base.GetByFilter(ctx, req)
}

0 comments on commit ad6e30b

Please sign in to comment.