1515package com .crapi .config ;
1616
1717import com .crapi .constant .TestUsers ;
18+ import com .crapi .entity .ProfileVideo ;
1819import com .crapi .entity .User ;
1920import com .crapi .entity .UserDetails ;
21+ import com .crapi .entity .VehicleCompany ;
2022import com .crapi .entity .VehicleDetails ;
23+ import com .crapi .entity .VehicleLocation ;
24+ import com .crapi .entity .VehicleModel ;
25+ import com .crapi .enums .EFuelType ;
2126import com .crapi .enums .ERole ;
2227import com .crapi .model .SeedUser ;
2328import com .crapi .repository .*;
2429import com .crapi .service .VehicleService ;
30+ import com .crapi .utils .GenerateVIN ;
2531import com .crapi .utils .UserData ;
26- import com .crapi .utils .VehicleLocationData ;
27- import com .crapi .utils .VehicleModelData ;
2832import java .util .ArrayList ;
33+ import java .util .List ;
34+ import java .util .Random ;
2935import org .slf4j .Logger ;
3036import org .slf4j .LoggerFactory ;
3137import org .springframework .beans .factory .annotation .Autowired ;
@@ -40,8 +46,16 @@ public class InitialDataConfig {
4046
4147 private static final Logger logger = LoggerFactory .getLogger (InitialDataConfig .class );
4248
49+ private static long seed = 0 ;
50+
51+ private Random random ;
52+
53+ GenerateVIN generateVIN ;
54+
4355 @ Autowired VehicleLocationRepository vehicleLocationRepository ;
4456
57+ @ Autowired VehicleCompanyRepository vehicleCompanyRepository ;
58+
4559 @ Autowired VehicleModelRepository vehicleModelRepository ;
4660
4761 @ Autowired VehicleDetailsRepository vehicleDetailsRepository ;
@@ -56,30 +70,57 @@ public class InitialDataConfig {
5670
5771 @ Autowired PasswordEncoder encoder ;
5872
59- public void addLocation () {
60- if (CollectionUtils .isEmpty (vehicleLocationRepository .findAll ())) {
61- VehicleLocationData vehicleLocationData = new VehicleLocationData ();
62- vehicleLocationRepository .saveAll (vehicleLocationData .getVehicleLocationData ());
63- }
73+ public void createModels () {
74+ VehicleCompany vehicleCompany = new VehicleCompany ("Hyundai" );
75+ VehicleModel vehicleModel =
76+ new VehicleModel ("Creta" , EFuelType .DIESEL , vehicleCompany , "images/hyundai-creta.jpg" );
77+ vehicleModelRepository .save (vehicleModel );
78+
79+ vehicleCompany = new VehicleCompany ("Lamborghini" );
80+ vehicleModel =
81+ new VehicleModel (
82+ "Aventador" , EFuelType .PETROL , vehicleCompany , "images/lamborghini-aventador.jpg" );
83+ vehicleModel = vehicleModelRepository .save (vehicleModel );
84+
85+ vehicleCompany = new VehicleCompany ("Mercedes-Benz" );
86+ vehicleModel =
87+ new VehicleModel (
88+ "GLA Class" , EFuelType .DIESEL , vehicleCompany , "images/mercedesbenz-gla.jpg" );
89+ vehicleModelRepository .save (vehicleModel );
90+
91+ vehicleCompany = new VehicleCompany ("BMW" );
92+ vehicleModel =
93+ new VehicleModel ("5 Series" , EFuelType .PETROL , vehicleCompany , "images/bmw-5.jpg" );
94+ vehicleModelRepository .save (vehicleModel );
95+
96+ vehicleCompany = new VehicleCompany ("Audi" );
97+ vehicleModel = new VehicleModel ("RS7" , EFuelType .DIESEL , vehicleCompany , "images/audi-rs7.jpg" );
98+ vehicleModelRepository .save (vehicleModel );
99+
100+ vehicleCompany = new VehicleCompany ("MG Motor" );
101+ vehicleModel =
102+ new VehicleModel (
103+ "Hector Plus" , EFuelType .PETROL , vehicleCompany , "images/mgmotor-hectorplus.jpg" );
104+ vehicleModel = vehicleModelRepository .save (vehicleModel );
64105 }
65106
66107 public void addVehicleModel () {
67108 if (CollectionUtils .isEmpty (vehicleModelRepository .findAll ())) {
68- VehicleModelData vehicleModelData = new VehicleModelData ();
69- vehicleModelRepository .saveAll (vehicleModelData .getModelList ());
109+ createModels ();
70110 }
71111 }
72112
73113 @ EventListener
74114 public void setup (ApplicationReadyEvent event ) {
75-
76- addLocation ();
115+ random = new Random ();
116+ random .setSeed (seed );
117+ generateVIN = new GenerateVIN ();
77118 addVehicleModel ();
78119 addUser ();
79120 }
80121
81122 public void addUser () {
82- if (CollectionUtils .isEmpty (userDetailsRepository .findAll ())) {
123+ if (CollectionUtils .isEmpty (userDetailsRepository .findAll ()) || false ) {
83124 ArrayList <SeedUser > userDetailList = new TestUsers ().getUsers ();
84125 for (SeedUser userDetails : userDetailList ) {
85126 boolean user =
@@ -88,32 +129,75 @@ public void addUser() {
88129 userDetails .getEmail (),
89130 userDetails .getPassword (),
90131 userDetails .getNumber (),
91- userDetails .getRole ());
132+ userDetails .getRole (),
133+ userDetails .getCarid (),
134+ userDetails .getVin (),
135+ userDetails .getPincode (),
136+ userDetails .getLatitude (),
137+ userDetails .getLongitude ());
92138 if (!user ) {
93139 logger .error ("Fail to create predefined users" );
94140 }
95141 }
96142 }
97143 }
98144
145+ public VehicleDetails createVehicle (
146+ String carId , String vin , String pincode , String latitude , String longitude ) {
147+ List <VehicleModel > modelList = null ;
148+ modelList = vehicleModelRepository .findAll ();
149+ if (modelList != null ) {
150+ VehicleLocation vehicleLocation = new VehicleLocation (latitude , longitude );
151+ VehicleDetails vehicleDetails = new VehicleDetails (carId , pincode , vin );
152+ VehicleModel vehicleModel = modelList .get (random .nextInt (modelList .size ()));
153+ vehicleModel = vehicleModelRepository .findById (vehicleModel .getId ()).get ();
154+ vehicleDetails .setVehicleLocation (vehicleLocation );
155+ vehicleDetails = vehicleDetailsRepository .save (vehicleDetails );
156+ vehicleDetails .setModel (vehicleModel );
157+ vehicleDetails = vehicleDetailsRepository .save (vehicleDetails );
158+ logger .debug ("Created vehicle for {} successfully" , vehicleDetails );
159+ return vehicleDetails ;
160+ }
161+ return null ;
162+ }
163+
99164 public boolean predefineUserData (
100- String name , String email , String password , String number , ERole role ) {
165+ String name ,
166+ String email ,
167+ String password ,
168+ String number ,
169+ ERole role ,
170+ String carId ,
171+ String vin ,
172+ String pincode ,
173+ String latitude ,
174+ String longitude ) {
101175 UserData userData = new UserData ();
102176 VehicleDetails vehicleDetails = null ;
103177 UserDetails userDetails = null ;
104178 try {
105179 User user = new User (email , number , encoder .encode (password ), role );
106180 user = userRepository .save (user );
181+ user = userRepository .findById (user .getId ()).get ();
107182 userDetails = userData .getPredefineUser (name , user );
108- userDetailsRepository .save (userDetails );
109- vehicleDetails = vehicleService . createVehicle ();
183+ userDetails = userDetailsRepository .save (userDetails );
184+ vehicleDetails = createVehicle (carId , vin , pincode , latitude , longitude );
110185 if (vehicleDetails != null ) {
111186 vehicleDetails .setOwner (user );
112187 vehicleDetailsRepository .save (vehicleDetails );
113- return true ;
188+ } else {
189+ logger .error ("Fail to create vehicle for user {}" , email );
190+ return false ;
114191 }
115- logger .error ("Fail to create vehicle for user {}" , email );
116- return false ;
192+ // generate random bytes
193+ byte [] videoBytes = new byte [10 ];
194+ random .nextBytes (videoBytes );
195+ String videoName = userDetails .getName ().replace (" " , "_" ) + "_video" ;
196+ String conversionParam = "-v codec h264" ;
197+ ProfileVideo profileVideo = new ProfileVideo (videoName , videoBytes , user );
198+ profileVideo .setConversion_params (conversionParam );
199+ profileVideoRepository .save (profileVideo );
200+ return true ;
117201 } catch (Exception e ) {
118202 logger .error ("Fail to create user {}, Exception :: {}" , email , e );
119203 return false ;
0 commit comments