<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Linhas de Linguagem de Validação
    |--------------------------------------------------------------------------
    |
    | As seguintes linhas de linguagem contêm as mensagens de erro padrão usadas
    | pela classe de validação. Algumas dessas regras têm várias versões,
    como
    | as regras de tamanho. Sinta-se à vontade para ajustar cada uma dessas mensagens aqui.
    |
    */

    'accepted'        => 'O campo :attribute deve ser aceito.',
    'accepted_if'     => 'O campo :attribute deve ser aceito quando :other é :value.',
    'active_url'      => 'O campo :attribute deve ser uma URL válida.',
    'after'           => 'O campo :attribute deve ser uma data posterior a :date.',
    'after_or_equal'  => 'O campo :attribute deve ser uma data posterior ou igual a :date.',
    'alpha'           => 'O campo :attribute deve conter apenas letras.',
    'alpha_dash'      => 'O campo :attribute deve conter apenas letras, números, traços e sublinhados.',
    'alpha_num'       => 'O campo :attribute deve conter apenas letras e números.',
    'array'           => 'O campo :attribute deve ser um array.',
    'ascii'           => 'O campo :attribute deve conter apenas caracteres alfanuméricos de byte único e símbolos.',
    'before'          => 'O campo :attribute deve ser uma data anterior a :date.',
    'before_or_equal' => 'O campo :attribute deve ser uma data anterior ou igual a :date.',
    'between'         => [
        'array'   => 'O campo :attribute deve ter entre :min e :max itens.',
        'file'    => 'O campo :attribute deve ter entre :min e :max kilobytes.',
        'numeric' => 'O campo :attribute deve estar entre :min e :max.',
        'string'  => 'O campo :attribute deve ter entre :min e :max caracteres.',
    ],
    'boolean'               => 'O campo :attribute deve ser verdadeiro ou falso.',
    'can'                   => 'O campo :attribute contém um valor não autorizado.',
    'cannot_delete_related' => 'Não é possível excluir o :attribute porque existem registros relacionados.',
    'confirmed'             => 'A confirmação do campo :attribute não corresponde.',
    'contains'              => 'O campo :attribute está faltando um valor obrigatório.',
    'current_password'      => 'A senha está incorreta.',
    'date'                  => 'O campo :attribute deve ser uma data válida.',
    'date_equals'           => 'O campo :attribute deve ser uma data igual a :date.',
    'date_format'           => 'O campo :attribute deve corresponder ao formato :format.',
    'decimal'               => 'O campo :attribute deve ter :decimal casas decimais.',
    'declined'              => 'O campo :attribute deve ser recusado.',
    'declined_if'           => 'O campo :attribute deve ser recusado quando :other é :value.',
    'different'             => 'Os campos :attribute e :other devem ser diferentes.',
    'digits'                => 'O campo :attribute deve ter :digits dígitos.',
    'digits_between'        => 'O campo :attribute deve ter entre :min e :max dígitos.',
    'dimensions'            => 'O campo :attribute tem dimensões de imagem inválidas.',
    'distinct'              => 'O campo :attribute tem um valor duplicado.',
    'doesnt_end_with'       => 'O campo :attribute não deve terminar com um dos seguintes: :values.',
    'doesnt_start_with'     => 'O campo :attribute não deve começar com um dos seguintes: :values.',
    'email'                 => 'O campo :attribute deve ser um endereço de e-mail válido.',
    'ends_with'             => 'O campo :attribute deve terminar com um dos seguintes: :values.',
    'enum'                  => 'O campo :attribute selecionado é inválido.',
    'event_full'            => 'O evento está lotado.',
    'exists'                => 'O campo :attribute selecionado é inválido.',
    'extensions'            => 'O campo :attribute deve ter uma das seguintes extensões: :values.',
    'file'                  => 'O campo :attribute deve ser um arquivo.',
    'filled'                => 'O campo :attribute deve ter um valor.',
    'gt'                    => [
        'array'   => 'O campo :attribute deve ter mais de :value itens.',
        'file'    => 'O campo :attribute deve ser maior que :value kilobytes.',
        'numeric' => 'O campo :attribute deve ser maior que :value.',
        'string'  => 'O campo :attribute deve ser maior que :value caracteres.',
    ],
    'gte' => [
        'array'   => 'O campo :attribute deve ter :value itens ou mais.',
        'file'    => 'O campo :attribute deve ser maior ou igual a :value kilobytes.',
        'numeric' => 'O campo :attribute deve ser maior ou igual a :value.',
        'string'  => 'O campo :attribute deve ser maior ou igual a :value caracteres.',
    ],
    'hex_color' => 'O campo :attribute deve ser uma cor hexadecimal válida.',
    'image'     => 'O campo :attribute deve ser uma imagem.',
    'in'        => 'O campo :attribute selecionado é inválido.',
    'in_array'  => 'O campo :attribute deve existir em :other.',
    'integer'   => 'O campo :attribute deve ser um número inteiro.',
    'ip'        => 'O campo :attribute deve ser um endereço IP válido.',
    'ipv4'      => 'O campo :attribute deve ser um endereço IPv4 válido.',
    'ipv6'      => 'O campo :attribute deve ser um endereço IPv6 válido.',
    'json'      => 'O campo :attribute deve ser uma string JSON válida.',
    'list'      => 'O campo :attribute deve ser uma lista.',
    'lowercase' => 'O campo :attribute deve ser em letras minúsculas.',
    'lt'        => [
        'array'   => 'O campo :attribute deve ter menos de :value itens.',
        'file'    => 'O campo :attribute deve ser menor que :value kilobytes.',
        'numeric' => 'O campo :attribute deve ser menor que :value.',
        'string'  => 'O campo :attribute deve ser menor que :value caracteres.',
    ],
    'lte' => [
        'array'   => 'O campo :attribute não deve ter mais de :value itens.',
        'file'    => 'O campo :attribute deve ser menor ou igual a :value kilobytes.',
        'numeric' => 'O campo :attribute deve ser menor ou igual a :value.',
        'string'  => 'O campo :attribute deve ser menor ou igual a :value caracteres.',
    ],
    'mac_address' => 'O campo :attribute deve ser um endereço MAC válido.',
    'max'         => [
        'array'   => 'O campo :attribute não deve ter mais de :max itens.',
        'file'    => 'O campo :attribute não deve ser maior que :max kilobytes.',
        'numeric' => 'O campo :attribute não deve ser maior que :max.',
        'string'  => 'O campo :attribute não deve ser maior que :max caracteres.',
    ],
    'max_digits' => 'O campo :attribute não deve ter mais de :max dígitos.',
    'mimes'      => 'O campo :attribute deve ser um arquivo do tipo: :values.',
    'mimetypes'  => 'O campo :attribute deve ser um arquivo do tipo: :values.',
    'min'        => [
        'array'   => 'O campo :attribute deve ter pelo menos :min itens.',
        'file'    => 'O campo :attribute deve ter pelo menos :min kilobytes.',
        'numeric' => 'O campo :attribute deve ser pelo menos :min.',
        'string'  => 'O campo :attribute deve ter pelo menos :min caracteres.',
    ],
    'min_digits'       => 'O campo :attribute deve ter pelo menos :min dígitos.',
    'missing'          => 'O campo :attribute deve estar ausente.',
    'missing_if'       => 'O campo :attribute deve estar ausente quando :other é :value.',
    'missing_unless'   => 'O campo :attribute deve estar ausente a menos que :other seja :value.',
    'missing_with'     => 'O campo :attribute deve estar ausente quando :values estiver presente.',
    'missing_with_all' => 'O campo :attribute deve estar ausente quando :values estiverem presentes.',
    'multiple_of'      => 'O campo :attribute deve ser um múltiplo de :value.',
    'not_in'           => 'O campo :attribute selecionado é inválido.',
    'not_regex'        => 'O formato do campo :attribute é inválido.',
    'numeric'          => 'O campo :attribute deve ser um número.',
    'password'         => [
        'letters'       => 'O campo :attribute deve conter pelo menos uma letra.',
        'mixed'         => 'O campo :attribute deve conter pelo menos uma letra maiúscula e uma letra minúscula.',
        'numbers'       => 'O campo :attribute deve conter pelo menos um número.',
        'symbols'       => 'O campo :attribute deve conter pelo menos um símbolo.',
        'uncompromised' => 'O campo :attribute fornecido apareceu em um vazamento de dados. Escolha um :attribute diferente.',
    ],
    'payment_cant_be_refunded'                => 'O pagamento não pode ser reembolsado.',
    'present'                                 => 'O campo :attribute deve estar presente.',
    'present_if'                              => 'O campo :attribute deve estar presente quando :other é :value.',
    'present_unless'                          => 'O campo :attribute deve estar presente a menos que :other seja :value.',
    'present_with'                            => 'O campo :attribute deve estar presente quando :values estiver presente.',
    'present_with_all'                        => 'O campo :attribute deve estar presente quando :values estiverem presentes.',
    'prohibited'                              => 'O campo :attribute é proibido.',
    'prohibited_if'                           => 'O campo :attribute é proibido quando :other é :value.',
    'prohibited_unless'                       => 'O campo :attribute é proibido a menos que :other esteja em :values.',
    'prohibits'                               => 'O campo :attribute proíbe :other de estar presente.',
    'provider_unavailable'                    => 'O prestador não está disponível para a data e horário selecionados.',
    'refund_value_greater_than_payment_value' => 'O valor do reembolso não pode ser maior que o valor do pagamento.',
    'regex'                                   => 'O formato do campo :attribute é inválido.',
    'required'                                => 'O campo :attribute é obrigatório.',
    'required_array_keys'                     => 'O campo :attribute deve conter entradas para: :values.',
    'required_if'                             => 'O campo :attribute é obrigatório quando :other é :value.',
    'required_if_accepted'                    => 'O campo :attribute é obrigatório quando :other é aceito.',
    'required_if_declined'                    => 'O campo :attribute é obrigatório quando :other é recusado.',
    'required_unless'                         => 'O campo :attribute é obrigatório a menos que :other esteja em :values.',
    'required_with'                           => 'O campo :attribute é obrigatório quando :values está presente.',
    'required_with_all'                       => 'O campo :attribute é obrigatório quando :values estão presentes.',
    'required_without'                        => 'O campo :attribute é obrigatório quando :values não está presente.',
    'required_without_all'                    => 'O campo :attribute é obrigatório quando nenhum dos :values está presente.',
    'same'                                    => 'O campo :attribute e :other devem coincidir.',
    'size'                                    => [
        'array'   => 'O campo :attribute deve conter :size itens.',
        'file'    => 'O campo :attribute deve ter :size kilobytes.',
        'numeric' => 'O campo :attribute deve ser :size.',
        'string'  => 'O campo :attribute deve ter :size caracteres.',
    ],
    'starts_with' => 'O campo :attribute deve começar com um dos seguintes: :values.',
    'string'      => 'O campo :attribute deve ser uma string.',
    'timezone'    => 'O campo :attribute deve ser um fuso horário válido.',
    'unique'      => 'Já existe um registro com o valor informado no campo :attribute.',
    'uploaded'    => 'O campo :attribute falhou ao carregar.',
    'uppercase'   => 'O campo :attribute deve estar em letras maiúsculas.',
    'url'         => 'O campo :attribute deve ser uma URL válida.',
    'ulid'        => 'O campo :attribute deve ser um ULID válido.',
    'uuid'        => 'O campo :attribute deve ser um UUID válido.',
    /*
    |--------------------------------------------------------------------------
    | Linhas de Linguagem de Validação Personalizada
    |--------------------------------------------------------------------------
    |
    | Aqui você pode especificar mensagens de validação personalizadas para atributos usando a
    | convenção "attribute.rule" para nomear as linhas. Isso torna rápido especificar
    | uma linha de linguagem personalizada específica para uma determinada regra de atributo.
    |
    */

    'custom' => [
        'attribute-name' => [
            'rule-name' => 'mensagem-personalizada',
        ],
        'document' => [
            'invalid' => 'O CPF ou CNPJ informado é inválido.',
        ],
        'user_id' => [
            'already_linked_to_client'   => 'Este usuário já está vinculado a um cliente.',
            'already_linked_to_provider' => 'Este usuário já está vinculado a um prestador.',
        ],
        'zip_code' => [
            'invalid' => 'O CEP informado é inválido. Deve conter 8 dígitos.',
        ],
        'source' => [
            'invalid' => 'O tipo de origem é inválido. Deve ser Provider ou Client.',
        ],
        'source_id' => [
            'not_found' => 'O registro de origem não foi encontrado.',
        ],
        'address_type' => [
            'invalid' => 'O tipo de endereço é inválido.',
        ],
        'schedule' => [
            'weekly_limit_exceeded'                   => 'Este prestador já possui 2 agendamentos com este cliente na mesma semana.',
            'provider_not_working'                    => 'Prestador não trabalha neste dia/período.',
            'provider_blocked'                        => 'Prestador possui bloqueio neste dia/horário.',
            'invalid_price'                           => 'O preço informado é inválido para o tipo de período selecionado.',
            'invalid_price_range'                     => 'O preço mínimo não pode ser maior que o preço máximo.',
            'invalid_period_type'                     => 'O tipo de período é inválido. Deve ser 2, 4, 6 ou 8.',
            'price_not_in_range'                      => 'O preço deve estar entre o preço mínimo e máximo definido para esta oportunidade.',
            'provider_conflicting_schedule'           => 'O prestador possui um agendamento conflitante neste dia/horário.',
            'provider_conflicting_same_proposal'      => 'O prestador já possui uma proposta enviada para este agendamento.',
            'provider_conflicting_proposal_same_date' => 'O prestador já possui uma proposta para um agendamento no mesmo dia.',
            'client_blocked_by_provider'              => 'O cliente está bloqueado por este prestador.',
            'provider_blocked_by_client'              => 'O prestador está bloqueado por este cliente.',
        ],
        'opportunity' => [
            'already_assigned'      => 'Esta oportunidade já possui um prestador atribuído.',
            'proposal_already_sent' => 'Você já enviou uma proposta para esta oportunidade.',
            'provider_refused'      => 'Você foi recusado anteriormente para esta oportunidade.',
            'provider_not_working'  => 'Prestador não trabalha neste dia/período.',
            'provider_blocked'      => 'Prestador possui bloqueio neste dia/horário.',
            'schedule_conflict'     => 'Prestador já possui agendamento neste horário.',
            'code_already_verified' => 'O código já foi verificado para este agendamento.',
            'invalid_code'          => 'O código informado é inválido.',
        ],
        'provider_client_block' => [
            'already_blocked' => 'Este cliente já está bloqueado por este prestador.',
        ],
        'client_provider_block' => [
            'already_blocked' => 'Este prestador já está bloqueado por este cliente.',
        ],
        'review' => [
            'already_reviewed' => 'Esta agenda já foi avaliada por este usuário.',
            'invalid_origin'   => 'O campo origem deve ser "providers" ou "clients".',
        ],
        'review_improvement' => [
            'already_exists' => 'Este tipo de melhoria já está vinculado a esta avaliação.',
        ],
    ],
    /*
    |--------------------------------------------------------------------------
    | Atributos de Validação Personalizados
    |--------------------------------------------------------------------------
    |
    | As seguintes linhas de linguagem são usadas para trocar o espaço reservado de atributo
    | com algo mais amigável ao leitor, como "Endereço de E-Mail" em vez de "email".
    | Isso simplesmente nos ajuda a tornar nossa mensagem mais expressiva.
    |
    */

    'attributes' => [
        'client'   => 'cliente',
        'gender'   => 'gênero',
        'provider' => 'prestador',
    ],
];
