workshop/internal/models/vehicle.go
Dmitry Sirotkin 5dde392e10 vehicle added
2025-03-22 11:23:09 +03:00

67 lines
1.3 KiB
Go

package models
import (
u "gocommunity.ru/workshop/internal/utils"
"fmt"
"github.com/jinzhu/gorm"
)
type Vehicle struct {
gorm.Model
ClientId int `json:"client_id"`
Brand string `json:"brand"`
Color string `json:"color"`
}
func (vehicle *Vehicle) ValidateVehicle() (map[string]interface{}, bool) {
if vehicle.Brand == "" {
return u.Message(false, "Name cannot be empty!"), false
}
if vehicle.Color == "" {
return u.Message(false, "Phone number cannot be empty!"), false
}
if vehicle.ClientId <= 0 {
return u.Message(false, "User not found!"), false
}
return u.Message(true, "success"), true
}
func (vehicle *Vehicle) CreateVehicle() map[string]interface{} {
if response, ok := vehicle.ValidateVehicle(); !ok {
return response
}
GetDB().Create(vehicle)
resp := u.Message(true, "success")
resp["vehicle"] = vehicle
return resp
}
func Getvehicle(id uint) *Vehicle {
vehicle := &Vehicle{}
err := GetDB().Table("vehicles").Where("id = ?", id).First(vehicle).Error
if err != nil {
return nil
}
return vehicle
}
func Getvehicles(user uint) []*Vehicle {
vehiclesSlice := make([]*Vehicle, 0)
err := GetDB().Table("vehicles").Where("user_id = ?", user).Find(&vehiclesSlice).Error
if err != nil {
fmt.Println(err)
return nil
}
return vehiclesSlice
}