22
33namespace App \Packages \Features \QueryUseCases \UseCase ;
44
5+ use App \Packages \Domains \WorldHeritageEntityCollection ;
56use App \Packages \Domains \WorldHeritageRepositoryInterface ;
67use App \Packages \Features \QueryUseCases \Dto \WorldHeritageDtoCollection ;
78use App \Packages \Features \QueryUseCases \Factory \WorldHeritageListQueryCollectionFactory ;
89use App \Packages \Features \QueryUseCases \Dto \WorldHeritageDto ;
10+ use App \Packages \Domains \WorldHeritageEntity ;
11+ use App \Packages \Features \QueryUseCases \ListQuery \WorldHeritageListQuery ;
912
1013class CreateWorldManyHeritagesUseCase
1114{
@@ -17,10 +20,38 @@ public function handle(
1720 array $ request
1821 ): WorldHeritageDtoCollection
1922 {
20- $ listQuery = WorldHeritageListQueryCollectionFactory::build ($ request );
23+ $ listQueries = WorldHeritageListQueryCollectionFactory::build ($ request );
24+
25+ $ entityArray = array_map (
26+ function (WorldHeritageListQuery $ q ) {
27+ return new WorldHeritageEntity (
28+ id: $ q ->getId () ?? null ,
29+ unescoId: (int )$ q ->getUnescoId (),
30+ officialName: $ q ->getOfficialName (),
31+ name: $ q ->getName (),
32+ country: $ q ->getCountry (),
33+ region: $ q ->getRegion (),
34+ category: $ q ->getCategory (),
35+ yearInscribed: (int )$ q ->getYearInscribed (),
36+ latitude: $ q ->getLatitude () !== null ? (float )$ q ->getLatitude () : null ,
37+ longitude: $ q ->getLongitude () !== null ? (float )$ q ->getLongitude () : null ,
38+ isEndangered: (bool )$ q ->isEndangered (),
39+ nameJp: $ q ->getNameJp (),
40+ stateParty: $ q ->getStateParty (),
41+ criteria: $ q ->getCriteria () ?? [],
42+ areaHectares: $ q ->getAreaHectares (),
43+ bufferZoneHectares: $ q ->getBufferZoneHectares (),
44+ shortDescription: $ q ->getShortDescription (),
45+ imageUrl: $ q ->getImageUrl (),
46+ unescoSiteUrl: $ q ->getUnescoSiteUrl ()
47+ );
48+ }, $ listQueries ->getAllHeritages ()
49+ );
50+
51+ $ entities = new WorldHeritageEntityCollection ($ entityArray );
2152
2253 $ result = $ this ->repository ->insertHeritages (
23- $ listQuery
54+ $ entities
2455 );
2556
2657 return new WorldHeritageDtoCollection (
0 commit comments