| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -6,28 +6,18 @@ use App\Wrappers\DatabaseInteractions; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use App\Wrappers\SQLQueryBuilderWrapper; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$tuneDir = __DIR__ . '/../../../LocalStorage/Tunes'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$targetTuneID = $_GET['tune-id']; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$targetTuneVariantID = $_GET['tune-variant-id']; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$db = new DatabaseInteractions(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$tuneDetails = (new DatabaseInteractions())->RunOneSelect( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$variantDetails = $db->RunOneSelect( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        table: 'Tunes', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        id: $targetTuneID | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ->cols(cols: [ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T.*', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$variants = $db->RunOneSelect( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    queryBuilder: SQLQueryBuilderWrapper::SELECT( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        table: 'Tunes' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        table: 'TuneVariants', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        id: $targetTuneVariantID | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ->cols([ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T.ID AS TuneID', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T_TV.ID AS TuneVariantID', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T.Title', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T.ID AS TuneVariantID', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T.TuneID AS TuneID', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            "CONCAT('[', GROUP_CONCAT( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                CONCAT( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    '{\"TimeSignature\":', JSON_QUOTE(T_TVP.TimeSignature), ',', | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -38,27 +28,26 @@ $variants = $db->RunOneSelect( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ->join( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            join: 'INNER', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            spec: 'TuneVariants T_TV', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            cond: 'T.ID = T_TV.TuneID' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ->join( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            join: 'INNER', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            spec: 'TuneVariantParts T_TVP', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            cond: 'T_TV.ID = T_TVP.TuneVariantID' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            spec: 'TuneVariantParts AS T_TVP', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            cond: 'T.ID = T_TVP.TuneVariantID' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ->where(cond: 'T.ID = :__tune_id__') | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ->groupBy(spec: [ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T.ID', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T_TV.ID', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            'T.Title', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ->bindValue(name: '__tune_id__', value: $targetTuneID) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$tuneDetails = $db->RunOneSelect( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        table: 'Tunes', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        id: $variantDetails['TuneID'] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$tuneDetails = new DatabaseFolkTuneDetails($tuneDetails); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$tuneDetails->Variants[] = new TuneVariant($tuneDetails, $variants); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					$variantDetails = new TuneVariant($tuneDetails, $variantDetails); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					header(header: "Content-type: text/text"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					echo $tuneDetails->Variants[0]->Build(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					echo $variantDetails->Build(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					die(); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |