<?php
    $json = file_get_contents('php://input');   
    $obj = json_decode($json);
    $id = $obj->flag;
    $msg;
    
    // Returns a Json
    header('Content-Type: application/json');
    
    switch($id){
        case '0': //planes a pagar
            $conn = new mysqli("directoriofitness.com.mx","direct18","L4LL4v3M@3str@","$obj->bd");
            $conn -> set_charset("utf8");
            $query = "SELECT  * FROM(SELECT 
                socio_servicio.idServicio as 'id',
                pagos.FechaInicio,
                servicios.NombreServicio,
                servicios.PVisita,servicios.PSemanal,servicios.PQuincenal,
                servicios.PMensual,servicios.PBimestral,servicios.PTrimestral,
                servicios.PCuatrimestral,servicios.PSemestral,servicios.PAnual,
                socio_servicio.idSocio_Servicio AS 'idss',
                socio_servicio.idSocioTitular as 'st',
                pagos.FechaFin,
                socios.Activo,
                servicios.PReactivacion
            FROM 
                socio_servicio
                	INNER JOIN pagos
            	        ON socio_servicio.idSocio_Servicio = pagos.idSocio_Servicio
                    INNER JOIN servicios
            	        ON socio_servicio.idServicio = servicios.idServicio
                    INNER JOIN socios
            	        ON socio_servicio.idSocio = socios.idSocio
            WHERE
                socio_servicio.idSocio = '$obj->id_cliente'
                AND pagos.Cancelado = 0  
                AND pagos.Visible = 1
			GROUP BY
				socio_servicio.idSocio_Servicio DESC
            ) AS tmp
            GROUP BY
            	tmp.id
            ORDER BY
                tmp.idss DESC;";
            
            $resultado = $conn->query($query);
            $array = [];
            $arrayConcepto = [];
            $arrayTemp = [];
          
            if($resultado->num_rows > 0){
                $rowActivo = $resultado->fetch_assoc();
                if($rowActivo['Activo'] == '0'){
                    $arrayConcepto[] = ['idpago' => '10', 'nombre' => 'Pago Reactivacion' ,'costo' => $rowActivo['PReactivacion'], 'fechaActual' => $rowActivo['FechaFin']];
                    $arrayTemp = ['id' => $rowActivo['id'], 'NombreServicio' => $rowActivo['NombreServicio'], 
                    'activo'=> $rowActivo['Activo'],'planes' => $arrayConcepto];
                    $array[] = $arrayTemp;
                }else{
                    $resultado = $conn->query($query);
                    while($row = $resultado->fetch_assoc()){
                        $arrayTemp = [];
                        $arrayConcepto = [];
                        if($row['PVisita'] != null){
                            $arrayConcepto[] = ['idpago' => '1', 'nombre' => 'Visita' ,'costo' => $row['PVisita'], 'reactivacion' => $row['PReactivacion']];
                        }
                        if($row['PSemanal'] != null){
                            $arrayConcepto[] = ['idpago' => '2', 'nombre' => 'Semanal' ,'costo' => $row['PSemanal'],'reactivacion' => $row['PReactivacion']];
                        }
                        if($row['PQuincenal'] != null){
                            $arrayConcepto[] = ['idpago' => '3', 'nombre' => 'Quincenal' ,'costo' => $row['PQuincenal'],'reactivacion' => $row['PReactivacion']];
                        }
                        if($row['PMensual'] != null){
                            $arrayConcepto[] = ['idpago' => '4', 'nombre' => 'Mensual' ,'costo' => $row['PMensual'],'reactivacion' => $row['PReactivacion']];
                        }
                        if($row['PBimestral'] != null){
                            $arrayConcepto[] = ['idpago' => '5', 'nombre' => 'Bimestral' ,'costo' => $row['PBimestral'],'reactivacion' => $row['PReactivacion']];
                        }
                        if($row['PTrimestral'] != null){
                            $arrayConcepto[] = ['idpago' => '6', 'nombre' => 'Trimestral' ,'costo' => $row['PTrimestral'],'reactivacion' => $row['PReactivacion']];
                        }
                        if($row['PCuatrimestral'] != null){
                            $arrayConcepto[] = ['idpago' => '7', 'nombre' => 'Cuatrimestral' ,'costo' => $row['PCuatrimestral'],'reactivacion' => $row['PReactivacion']];
                        }
                        if($row['PSemestral'] != null){
                            $arrayConcepto[] = ['idpago' => '8', 'nombre' => 'Semestral' ,'costo' => $row['PSemestral'],'reactivacion' => $row['PReactivacion']];
                        }
                        if($row['PAnual'] != null){
                            $arrayConcepto[] = ['idpago' => '9', 'nombre' => 'Anual' ,'costo' => $row['PAnual'],'reactivacion' => $row['PReactivacion']];
                        }
                        
                        $arrayTemp = ['id' => $row['id'], 'NombreServicio' => $row['NombreServicio'], 'planes' => $arrayConcepto];
                        $array[] = $arrayTemp;
                    }
                }
            }else{
                $arrayTemp = ['id' => 'nulo', 'NombreServicio' => 'nulo', 'planes' => 'nulo'];
            }
            
            echo json_encode($array);
            
            $conn->close();
            break;
            
        case '1':
            $conn = new mysqli("directoriofitness.com.mx","direct18","L4LL4v3M@3str@","$obj->bd");
            $conn -> set_charset("utf8");
            $day = 0;
            $fechaNewVen;
            $arrayConcepto = [];
            
            switch($obj->tipoPago){
                case '0': $day = 0; $pago = 'PInscripcion'; break;
                case '1': $day = 1; $pago = 'PVisita'; break;
                case '2': $day = 7; $pago = 'PSemanal'; break;
                case '3': $day = 15; $pago = 'PQuincenal'; break;
                case '4': $day = 1; $pago = 'PMensual'; break;
                case '5': $day = 2; $pago = 'PBimestral'; break;
                case '6': $day = 3; $pago = 'PTrimestral'; break;
                case '7': $day = 4; $pago = 'PCuatrimestral'; break;
                case '8': $day = 6; $pago = 'PSemestral'; break;
                case '9': $day = 1; $pago = 'PAnual'; break;
            }
            
            // Primero: verificar si el cliente ya tiene este servicio (RENOVACIÓN)
            $queryExistente = "SELECT 
                    pagos.FechaFin,
                    servicios.$pago AS precio
                FROM socio_servicio
                    INNER JOIN pagos ON socio_servicio.idSocio_Servicio = pagos.idSocio_Servicio
                    INNER JOIN servicios ON socio_servicio.idServicio = servicios.idServicio
                WHERE
                    socio_servicio.idSocio = '$obj->id_cliente' 
                    AND servicios.idServicio = '$obj->id_servicio'
                    AND pagos.Cancelado = 0  
                    AND pagos.Visible = 1
                ORDER BY pagos.FechaFin DESC
                LIMIT 1";
            
            $resultado = $conn->query($queryExistente);
            
            if($resultado->num_rows > 0){
                // === RENOVACIÓN: Cliente ya tiene este servicio ===
                $row = $resultado->fetch_assoc();
                $fechaActual = $row['FechaFin'];
                $precio = $row['precio'];
                
                if($precio == null || $precio == '0.00'){
                    $arrayConcepto[] = ['mensaje' => 'Este pago no esta disponible', 'actual' => 'sin fecha','vencimineto' => 'sin fecha', 'band' => 'false'];
                } else {
                    $date = date('Y-m-d');
                    $band = (strtotime($fechaActual) >= strtotime($date)) ? 'true' : 'false';
                    
                    // Calcular nuevo vencimiento desde fecha actual del plan
                    if($obj->tipoPago >= 0 && $obj->tipoPago <= 3){
                        $fechaNewVen = date('d-m-Y', strtotime("+$day days", strtotime($fechaActual)));
                    } else if($obj->tipoPago >= 4 && $obj->tipoPago <= 8){
                        $fechaNewVen = date('d-m-Y', strtotime("+$day months", strtotime($fechaActual)));
                    } else {
                        $fechaNewVen = date('d-m-Y', strtotime("+1 year", strtotime($fechaActual)));
                    }
                    
                    $arrayConcepto[] = ['mensaje' => $precio, 'actual' => date("d-m-Y", strtotime($fechaActual)), 'vencimineto' => $fechaNewVen, 'band' => $band];
                }
            } else {
                // === NUEVO PLAN: Cliente NO tiene este servicio ===
                // Consultar solo el precio del servicio en la tabla servicios
                $queryNuevo = "SELECT $pago AS precio FROM servicios WHERE idServicio = '$obj->id_servicio'";
                $resultadoNuevo = $conn->query($queryNuevo);
                
                if($resultadoNuevo->num_rows > 0){
                    $rowNuevo = $resultadoNuevo->fetch_assoc();
                    $precio = $rowNuevo['precio'];
                    
                    if($precio == null || $precio == '0.00'){
                        $arrayConcepto[] = ['mensaje' => 'Este pago no esta disponible', 'actual' => 'sin fecha','vencimineto' => 'sin fecha', 'band' => 'false'];
                    } else {
                        // Para nuevo plan: fecha base es HOY
                        $fechaHoy = date('Y-m-d');
                        
                        if($obj->tipoPago >= 0 && $obj->tipoPago <= 3){
                            $fechaNewVen = date('d-m-Y', strtotime("+$day days", strtotime($fechaHoy)));
                        } else if($obj->tipoPago >= 4 && $obj->tipoPago <= 8){
                            $fechaNewVen = date('d-m-Y', strtotime("+$day months", strtotime($fechaHoy)));
                        } else {
                            $fechaNewVen = date('d-m-Y', strtotime("+1 year", strtotime($fechaHoy)));
                        }
                        
                        // band = 'nuevo' para que Flutter sepa que es plan nuevo
                        $arrayConcepto[] = ['mensaje' => $precio, 'actual' => date("d-m-Y"), 'vencimineto' => $fechaNewVen, 'band' => 'nuevo'];
                    }
                } else {
                    $arrayConcepto[] = ['mensaje' => 'Servicio no encontrado', 'actual' => 'sin fecha','vencimineto' => 'sin fecha', 'band' => 'false'];
                }
            }
            
            echo json_encode($arrayConcepto);
            $conn->close();
            break;
    }
?>