Skip to content

Commit

Permalink
Merge pull request #690 from basedosdados/feat/service-terms
Browse files Browse the repository at this point in the history
Feat/service terms
  • Loading branch information
AldemirLucas authored Sep 11, 2023
2 parents 0c874b1 + a0a706f commit 073345d
Show file tree
Hide file tree
Showing 3 changed files with 257 additions and 13 deletions.
2 changes: 1 addition & 1 deletion next/components/atoms/TemporalCoverageDisplay.js
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ export function TemporalCoverageBar ({ value }) {

const checkoutBdpro = (value) => {
if(value === "open") return
window.open("https://buy.stripe.com/8wM01TeVQ3kg0mIeV4", "_blank")
window.open("/precos", "_blank")
}

const BadgeContainer = ({
Expand Down
157 changes: 157 additions & 0 deletions next/content/serviceTermsBDPro.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@

import {
VStack,
Box
} from "@chakra-ui/react";
import BodyText from "../components/atoms/BodyText";
import SectionText from "../components/atoms/SectionText";

export default function ServiceTermsBDPro() {

return (
<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="24px"
>
<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">1. Aceitação dos Termos</BodyText>
<SectionText>Ao acessar ou usar os serviços oferecidos pela Base dos Dados ("Nós", "Nosso" ou "Nossos"), você concorda em cumprir e aceitar estes Termos de Serviço. Se você não concordar com todos os termos e condições deste acordo, não poderá utilizar nossos serviços.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">2. Descrição do Serviço</BodyText>
<SectionText>2.1. Nossos serviços consistem em uma assinatura mensal que concede aos seus assinantes o acesso a diversos dados exclusivos, harmonizados e atualizados na plataforma da Base dos Dados. O acesso se dá via os pacotes Python, R ou Stata da Base dos Dados, ou via BigQuery, serviço de armazenamento de dados de baixo custo e totalmente gerenciado do Google para análises.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">3. Pagamento e Assinaturas</BodyText>
<Box>
<SectionText>3.1. Ao se inscrever em nossos serviços, você concorda em pagar a taxa mensal especificada. O pagamento será processado automaticamente a cada mês, a menos que você cancele sua assinatura antes da data de renovação, devidamente explicita na contratação do serviço.</SectionText>
<SectionText>3.2. Os preços e os métodos de pagamento estão sujeitos a alterações a critério exclusivo da Base dos Dados. As alterações de preço ou de métodos de pagamento serão notificadas com antecedência.</SectionText>
</Box>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">4. Cancelamento e Reembolso</BodyText>
<SectionText>4.1. Você pode cancelar sua assinatura a qualquer momento através das opções disponíveis em sua conta. No entanto, não serão fornecidos reembolsos ou créditos por períodos em que a assinatura não foi utilizada.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">5. Uso Responsável</BodyText>
<SectionText>5.1. Você concorda em usar nossos serviços de forma responsável e em conformidade com todas as leis e regulamentos aplicáveis.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">6. Propriedade Intelectual</BodyText>
<SectionText>6.1. Todos os direitos de propriedade intelectual relacionados aos dados fornecidos são de propriedade de terceiros e estão sujeitos às suas respectivas políticas de uso.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">7. Privacidade</BodyText>
<SectionText>7.1. O uso de seus dados pessoais é regido por nossa Política de Privacidade. Ao usar nossos serviços, você concorda com a coleta e o uso de suas informações conforme descrito em nossa Política de Privacidade.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">8. Rescisão</BodyText>
<SectionText>8.1. Reservamo-nos o direito de encerrar ou suspender sua conta a qualquer momento, por qualquer motivo, sem aviso prévio.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">9. Limitação de Responsabilidade</BodyText>
<SectionText>9.1. Em nenhuma circunstância seremos responsáveis por danos diretos, indiretos, especiais, incidentais ou consequentes decorrentes do uso ou da incapacidade de usar nossos serviços.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">10. Alterações nos Termos de Serviço</BodyText>
<SectionText>10.1. Reservamo-nos o direito de modificar estes Termos de Serviço a qualquer momento. As alterações serão efetivas após a publicação das versões atualizadas em nosso site.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">11. Lei Aplicável e Jurisdição</BodyText>
<SectionText>11.1. Estes Termos de Serviço serão regidos e interpretados de acordo com as leis do Brasil. Qualquer disputa relacionada a estes termos estará sujeita à jurisdição exclusiva dos tribunais do Rio de Janeiro, RJ, Brasil.</SectionText>
</VStack>

<VStack
display="flex"
flexDirection="column"
spacing={0}
alignItems="start"
gap="8px"
>
<BodyText fontWeight="500">12. Contato</BodyText>
<SectionText>12.1. Para entrar em contato conosco com perguntas ou preocupações relacionadas a estes Termos de Serviço, por favor, envie um e-mail para [email protected].</SectionText>
</VStack>

<SectionText fontSize="16px">Ao utilizar nossos serviços, você concorda com todos os termos e condições estabelecidos neste acordo. Por favor, leia estes termos atentamente antes de prosseguir.</SectionText>
</VStack>
)
}
111 changes: 99 additions & 12 deletions next/pages/precos.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ import {
Tooltip,
Badge,
Button,
useDisclosure,
Modal,
ModalOverlay,
ModalContent,
ModalHeader,
ModalBody,
ModalFooter,
} from "@chakra-ui/react";
import { useState } from "react";
import Head from "next/head";
Expand All @@ -13,7 +20,8 @@ import BigTitle from "../components/atoms/BigTitle"
import BodyText from "../components/atoms/BodyText";
import RoundedButton from "../components/atoms/RoundedButton";
import { MainPageTemplate } from "../components/templates/main";
import { isMobileMod } from "../hooks/useCheckMobile.hook"
import { isMobileMod } from "../hooks/useCheckMobile.hook";
import ServiceTermsBDPro from "../content/serviceTermsBDPro";

import CheckIcon from "../public/img/icons/checkIcon";
import CrossIcon from "../public/img/icons/crossIcon";
Expand All @@ -28,10 +36,13 @@ export default function Price() {
personConfig,
textResource,
resources = [],
button
button,
hasServiceTerms= false
}) => {
const { isOpen, onOpen, onClose } = useDisclosure()
const [nubmerOfPerson, setNubmerOfPerson] = useState(personConfig.person)
const [priceValue, setPriceValue] = useState(personConfig.price)
const [linkStripe, setLinkStripe] = useState("")

const addRemovePersonPrice = (action) => {
if(action === "add") {
Expand All @@ -57,6 +68,38 @@ export default function Price() {
padding="40px 24px"
textAlign="center"
>
<Modal
isOpen={isOpen}
onClose={onClose}
scrollBehavior="inside"
>
<ModalOverlay />
<ModalContent maxWidth="800px !important">
<ModalHeader>Termos de serviço</ModalHeader>
<ModalBody>
<ServiceTermsBDPro/>
</ModalBody>

<ModalFooter>
{linkStripe === "" ?
<RoundedButton onClick={onClose} borderRadius="12px">
Fechar
</RoundedButton>
:
<RoundedButton onClick={() => {
onClose()
window.open(linkStripe, "_blank")
setLinkStripe("")
}}
borderRadius="12px"
>
Concordar
</RoundedButton>
}
</ModalFooter>
</ModalContent>
</Modal>

<Box
height="fit-content"
>
Expand Down Expand Up @@ -267,15 +310,57 @@ export default function Price() {
})}
</Box>

<RoundedButton
width="100%"
color={button.colorText || "#FFF"}
backgroundColor={button.color || "#42B0FF"}
onClick={() => window.open(button.href, button.target || "_blank")}
border={button.color && `1px solid ${button.colorText}`}
<Box
display="flex"
flexDirection="column"
gap="16px"
>
{button.text}
</RoundedButton>
<RoundedButton
width="100%"
color={button.colorText || "#FFF"}
backgroundColor={button.color || "#42B0FF"}
onClick={() => {
onOpen()
setLinkStripe(button.href)
}}
border={button.color && `1px solid ${button.colorText}`}
>
{button.text}
</RoundedButton>

<Text
display="flex"
flexDirection="row"
justifyContent="center"
color="#252A32"
fontSize="14px"
fontWeight="400"
fontHeight="27px"
letterSpacing="0.3px"
fontFamily="Ubuntu"
height="20px"
textAlign="center"
>
{hasServiceTerms &&
<Text
display="flex"
flexDirection="row"
>Leia os
<Text
color="#42B0FF"
cursor="pointer"
_hover={{opacity: 0.7}}
marginLeft="6px"
onClick={() => {
onOpen()
setLinkStripe("")
}}
>termos de serviço</Text>
.
</Text>
}
</Text>
</Box>
</Box>
</Box>
)
Expand Down Expand Up @@ -366,8 +451,9 @@ export default function Price() {
]}
button={{
text: "Iniciar teste grátis",
href: "https://buy.stripe.com/8wM01TeVQ3kg0mIeV4"
href: "https://buy.stripe.com/8wM01TeVQ3kg0mIeV4?locale=pt"
}}
hasServiceTerms
/>

<CardPrice
Expand All @@ -384,8 +470,9 @@ export default function Price() {
]}
button={{
text: "Assine já",
href: "https://buy.stripe.com/00g4i93d8f2Y5H24gr"
href: "https://buy.stripe.com/00g4i93d8f2Y5H24gr?locale=pt"
}}
hasServiceTerms
/>
</Stack>
</Stack>
Expand Down

0 comments on commit 073345d

Please sign in to comment.