Olá estou tentando fazer um sistema de reservas de espaços com o wix, porém não consegui implementar uma das 2 validações necessárias para ficar redondo. Segue a ideia abaixo;
O sistema de reserva pode ter no máximo 2 reservas por dia. (OK)
O sistema não pode permitir q o mesmo usuário consiga reservar para o mesmo dia 2 vezes, EX:
João fez uma reserva para o dia 10/10/2020 e novamente ele tentou reservar para o dia 10/10/2020 isso o sistema não pode permitir. O usuário só pode fazer uma reserva para o dia desejado, caso ele desejasse fazer uma reserva para o dia 11/10/2020 isso seria permitido normalmente. (Essa foi a validação que não consegui realizar dentro do código)
Esse foi o código que utilizei para validar a 1 opção q não permite mais de 2 reservas para o dia.
//1ª Validação******
wixData.query("Reservas")
.eq("dataReserva", data)
.find()
.then((busca) => {
if (busca.totalCount === 2) {
$w("#txtResultado").show()
$w("#txtResultado").text = "Limite de Reservas Atingido Para Este Dia."
} else {
//Inserindo Dados No Banco de Dados
let dadosInsercao = {
"espaco": "Churrasqueira",
"dataReserva": data,
"responsvel": user.id,
}
wixData.insert("Reservas", dadosInsercao)
.then((resultado) => {
$w("#txtResultado").show()
$w("#txtResultado").text = "Reserva Realizada Com Sucesso!"
console.log(resultado)
})
}
//console.log(busca.totalCount)
})
Poderiam me ajudar nessa estou com dificuldades de encontrar uma solução para essa falha. Desde já sou grato pela sua atenção e força!!
Dados do meu dataset
- Utilizo o sistema de membros do próprio wix.
- Dataset (Reservas) ele recebe dados de espaço, dataReserva e um campo de Referência responsável ligada ao privateMembersData.
Uma coisa que eu não entendi: você quer bloquear que o usuário X faça 2 reservas no mesmo dia, ou você quer que o limite de reservas do espaço seja apenas 1 por dia?
Bom, se o limite de reservas do ambiente X for 1 por dia, você precisa incluir o ambiente na pesquisa.
wixData.query("Reservas") .eq("dataReserva", data) .eq("espaco", "Churrasqueira") .find()
Depois, verifique se o limite de buscas é diferente de zero ou seja, se a busca não retornar nenhuma reserva, então o ambiente pode ser alugado, se a busca retornar uma ou mais reservas, então o ambiente não pode ser emprestado novamente.
if (busca.items.lenght !== 0) {
---
Se quiser bloquear apenas para que João não reserve a churrasqueira mais de uma vez, você inclui o João na pesquisa também, assim outras pessoas também poderão reservar a churrasqueira Ex: João faz a reserva da churrasqueira e Maria também pode fazer para a mesma data. então seu código ficaria:
wixData.query("Reservas") .eq("dataReserva", data) .eq("espaco", "Churrasqueira") .eq("responsvel", user.id) .find() .then((busca) => {
Deste modo, mesmo se João reservar a churrasqueira para o dia X, Maria também conseguirá reservar pra ela.