Skip to content

Commit

Permalink
add car_model_year_service
Browse files Browse the repository at this point in the history
  • Loading branch information
alireza-fa committed Dec 24, 2023
1 parent 61f0212 commit 2a480a8
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 6 deletions.
29 changes: 23 additions & 6 deletions src/api/dto/car.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,13 @@ 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"`
Colors []CarModelColorResponse `json:"colors"`
Id int `json:"id"`
Name string `json:"name"`
CarType CarTypeResponse `json:"carType"`
Company CompanyResponse `json:"company"`
Gearbox GearboxResponse `json:"gearbox"`
Colors []CarModelColorResponse `json:"colors"`
CarModelYears []CarModelYearResponse `json:"carModelYears"`
}

type CreateCarModelColorRequest struct {
Expand All @@ -63,3 +64,19 @@ type CarModelColorResponse struct {
Id int `json:"id"`
Color ColorResponse `json:"color,omitempty"`
}

type CreateCarModelYearRequest struct {
CarModelId int `json:"carModelId" binding:"required"`
PersianYearId int `json:"persianYearId" binding:"required"`
}

type UpdateCarModelYearRequest struct {
CarModelId int `json:"carModelId,omitempty"`
PersianYearId int `json:"persianYearId,omitempty"`
}

type CarModelYearResponse struct {
Id int `json:"id"`
PersianYear PersianYearWithoutDateResponse `json:"persianYear,omitempty"`
CarModelId int `json:"carModelId,omitempty"`
}
51 changes: 51 additions & 0 deletions src/services/car_model_year_service.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
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 CarModelYearService struct {
base *BaseService[models.CarModelYear, dto.CreateCarModelYearRequest, dto.UpdateCarModelYearRequest, dto.CarModelYearResponse]
}

func NewCarModelYearService(cfg *config.Config) *CarModelYearService {
return &CarModelYearService{
base: &BaseService[models.CarModelYear, dto.CreateCarModelYearRequest, dto.UpdateCarModelYearRequest, dto.CarModelYearResponse]{
Database: db.GetDb(),
Logger: logging.NewLogger(cfg),
Preloads: []preload{
{string: "PersianYear"},
},
},
}
}

// Create carModelYear
func (s *CarModelYearService) Create(ctx context.Context, req *dto.CreateCarModelYearRequest) (*dto.CarModelYearResponse, error) {
return s.base.Create(ctx, req)
}

// Update carModelYear
func (s *CarModelYearService) Update(ctx context.Context, id int, req *dto.UpdateCarModelYearRequest) (*dto.CarModelYearResponse, error) {
return s.base.Update(ctx, id, req)
}

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

// GetById carModelYear
func (s *CarModelYearService) GetById(ctx context.Context, id int) (*dto.CarModelYearResponse, error) {
return s.base.GetById(ctx, id)
}

// GetByFilter carModelYear
func (s *CarModelYearService) GetByFilter(ctx context.Context, req *dto.PaginationInputWithFilter) (*dto.PagedList[dto.CarModelYearResponse], error) {
return s.base.GetByFilter(ctx, req)
}

0 comments on commit 2a480a8

Please sign in to comment.