feat: alinhar copy das modalidades à Apresentação
Cards e páginas /pacotes passam a usar o texto conceitual oficial, sem preço, VIP ou limites comerciais. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -9,11 +9,10 @@ use Illuminate\Database\Seeder;
|
|||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wedding package modalities shown on the home page (03 — Amare Casamentos)
|
* Wedding package modalities shown on the home page, services page and
|
||||||
* and the services page. Copy is approved from the structural model preview
|
* `/pacotes/{slug}`. Public copy follows "Apresentação dos serviços Amare"
|
||||||
* (preview(2).html) and remains editable via the Filament resource. Detail
|
* (conceito e momento). Commercial limits, price and third-party tools stay
|
||||||
* copy follows the complete-assessoria preview
|
* off this seeder and off the public site.
|
||||||
* (amare-assessoria-completa.html) adapted to each modality.
|
|
||||||
*/
|
*/
|
||||||
class WeddingPackagesSeeder extends Seeder
|
class WeddingPackagesSeeder extends Seeder
|
||||||
{
|
{
|
||||||
@@ -27,141 +26,147 @@ class WeddingPackagesSeeder extends Seeder
|
|||||||
'slug' => 'essenza',
|
'slug' => 'essenza',
|
||||||
'level' => '01 / COMPLETA',
|
'level' => '01 / COMPLETA',
|
||||||
'tag' => 'Assessoria completa',
|
'tag' => 'Assessoria completa',
|
||||||
'subtitle' => 'Do planejamento ao grande dia.',
|
'subtitle' => 'Do primeiro planejamento ao grande dia.',
|
||||||
'summary' => 'Para casais que desejam contar com a Amare desde o início ou ainda estão estruturando etapas importantes.',
|
'summary' => 'Ideal para casais que desejam contar com a Amare desde o início da organização ou que ainda estão estruturando etapas importantes do casamento.',
|
||||||
'scope_items' => [
|
'scope_items' => [
|
||||||
'Estruturação do planejamento',
|
'Estruturação e acompanhamento do planejamento',
|
||||||
'Cronogramas, prazos e prioridades',
|
'Organização de cronogramas, prazos e prioridades',
|
||||||
'Orientação e gestão de fornecedores',
|
'Orientação na contratação e gestão de fornecedores',
|
||||||
'Alinhamento entre os envolvidos',
|
'Acompanhamento das etapas do projeto',
|
||||||
'Coordenação da execução',
|
'Organização e conferência de contratos e informações',
|
||||||
|
'Alinhamento entre casal, fornecedores e demais envolvidos',
|
||||||
|
'Construção do cronograma do grande dia',
|
||||||
|
'Coordenação e acompanhamento da execução do evento',
|
||||||
],
|
],
|
||||||
'cta_label' => 'Quero conhecer a Essenza',
|
'cta_label' => 'Quero conhecer a Essenza',
|
||||||
'compare_heading' => 'Começar com a Amare',
|
'compare_heading' => 'Começar com a Amare',
|
||||||
'compare_summary' => 'Acompanhamento mais amplo ao longo do planejamento.',
|
'compare_summary' => 'Acompanhamento do primeiro planejamento ao grande dia.',
|
||||||
'sort_order' => 1,
|
'sort_order' => 1,
|
||||||
'eyebrow' => 'Assessoria',
|
'eyebrow' => 'Assessoria',
|
||||||
'title_line' => 'Assessoria',
|
'title_line' => 'Assessoria',
|
||||||
'title_emphasis' => 'Completa',
|
'title_emphasis' => 'Completa',
|
||||||
'hero_lead' => 'Do planejamento ao grande dia, com calma, precisão e cuidado.',
|
'hero_lead' => 'A assessoria completa acompanha o projeto de forma estratégica e próxima, desde a construção do planejamento até a execução do evento.',
|
||||||
'benefits' => [
|
'benefits' => [
|
||||||
['icon_key' => 'calendar', 'label' => 'Organização integral'],
|
['icon_key' => 'calendar', 'label' => 'Planejamento organizado'],
|
||||||
['icon_key' => 'checklist', 'label' => 'Planejamento personalizado'],
|
['icon_key' => 'checklist', 'label' => 'Decisões mais seguras'],
|
||||||
['icon_key' => 'users', 'label' => 'Fornecedores selecionados'],
|
['icon_key' => 'users', 'label' => 'Fornecedores alinhados'],
|
||||||
['icon_key' => 'heart', 'label' => 'Experiência leve e inesquecível'],
|
['icon_key' => 'heart', 'label' => 'Grande dia com leveza'],
|
||||||
],
|
],
|
||||||
'included_items' => [
|
'included_items' => [
|
||||||
['icon_key' => 'heart', 'title' => 'Escuta e briefing', 'description' => 'Cada casal é único; começamos por ouvir.'],
|
['icon_key' => 'checklist', 'title' => 'Estruturação do planejamento', 'description' => 'Organização do projeto desde o início, no ritmo do casal.'],
|
||||||
['icon_key' => 'checklist', 'title' => 'Planejamento completo', 'description' => 'Cada etapa mapeada com clareza.'],
|
['icon_key' => 'calendar', 'title' => 'Cronogramas e prioridades', 'description' => 'Prazos e etapas visíveis para decidir com calma.'],
|
||||||
['icon_key' => 'map', 'title' => 'Gestão de fornecedores', 'description' => 'Contatos e prazos sob cuidado.'],
|
['icon_key' => 'map', 'title' => 'Contratação e gestão de fornecedores', 'description' => 'Orientação e acompanhamento de quem entra no projeto.'],
|
||||||
['icon_key' => 'calendar', 'title' => 'Acompanhamento contínuo', 'description' => 'Perto do casal em cada decisão.'],
|
['icon_key' => 'users', 'title' => 'Alinhamento entre envolvidos', 'description' => 'Casal, fornecedores e demais partes na mesma conversa.'],
|
||||||
['icon_key' => 'spark', 'title' => 'Produção e logística', 'description' => 'Dia a dia do evento organizado nos detalhes.'],
|
['icon_key' => 'spark', 'title' => 'Contratos e informações', 'description' => 'Conferência do que foi combinado antes do grande dia.'],
|
||||||
['icon_key' => 'users', 'title' => 'Dia do evento', 'description' => 'Coordenação total para o casal viver o momento.'],
|
['icon_key' => 'heart', 'title' => 'Coordenação da execução', 'description' => 'Acompanhamento do evento para o casal viver o momento.'],
|
||||||
],
|
],
|
||||||
'audience_heading' => 'Para quem é este pacote',
|
'audience_heading' => 'Para quem é esta modalidade',
|
||||||
'audience_intro' => 'Para quem quer uma assessoria completa, do início ao fim.',
|
'audience_intro' => 'Para quem deseja ter ao lado uma profissional conduzindo o processo como um todo, com organização, estratégia e tranquilidade.',
|
||||||
'audience_points' => [
|
'audience_points' => [
|
||||||
'Casamentos',
|
'Casais no início da organização',
|
||||||
'Aniversários',
|
'Quem ainda está estruturando etapas importantes',
|
||||||
'Eventos sociais e celebrações',
|
'Quem quer acompanhamento do planejamento à execução',
|
||||||
'Eventos corporativos',
|
|
||||||
],
|
],
|
||||||
'final_cta_heading' => 'Pronta para começar?',
|
'final_cta_heading' => 'Vamos nos conhecer?',
|
||||||
'final_cta_body' => 'Conte seu evento para a Amare e receba uma proposta.',
|
'final_cta_body' => 'Antes de definir qualquer caminho, queremos conhecer vocês. Basta entrar em contato para uma conversa.',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => 'Conduzione',
|
'name' => 'Conduzione',
|
||||||
'slug' => 'conduzione',
|
'slug' => 'conduzione',
|
||||||
'level' => '02 / PARCIAL',
|
'level' => '02 / PARCIAL',
|
||||||
'tag' => 'Assessoria parcial',
|
'tag' => 'Assessoria parcial',
|
||||||
'subtitle' => 'Para quem já começou e quer seguir acompanhado.',
|
'subtitle' => 'Para quem já começou, mas quer seguir acompanhado.',
|
||||||
'summary' => 'Para casais que já tomaram decisões e contrataram parte dos fornecedores, mas precisam estruturar o que falta.',
|
'summary' => 'Indicada para casais que já iniciaram o planejamento e possuem parte dos fornecedores ou decisões definidas, mas desejam organizar o que falta e conduzir as próximas etapas.',
|
||||||
'scope_items' => [
|
'scope_items' => [
|
||||||
'Diagnóstico do planejamento existente',
|
'Diagnóstico do planejamento já realizado',
|
||||||
'Organização das pendências',
|
'Organização das etapas pendentes',
|
||||||
'Gestão dos fornecedores contratados',
|
'Gestão e acompanhamento dos fornecedores já contratados',
|
||||||
'Orientação para próximas decisões',
|
'Orientação sobre as próximas decisões',
|
||||||
'Coordenação da execução',
|
'Acompanhamento de prazos e informações',
|
||||||
|
'Comunicação e alinhamento com fornecedores',
|
||||||
|
'Organização do cronograma do evento',
|
||||||
|
'Coordenação da execução no grande dia',
|
||||||
],
|
],
|
||||||
'cta_label' => 'Quero conhecer a Conduzione',
|
'cta_label' => 'Quero conhecer a Conduzione',
|
||||||
'compare_heading' => 'Trazer a Amare para o caminho',
|
'compare_heading' => 'Trazer a Amare para o caminho',
|
||||||
'compare_summary' => 'O planejamento existe, mas ainda há decisões e gestão pela frente.',
|
'compare_summary' => 'O planejamento existe; a Amare organiza o que falta e conduz as próximas etapas.',
|
||||||
'sort_order' => 2,
|
'sort_order' => 2,
|
||||||
'eyebrow' => 'Assessoria',
|
'eyebrow' => 'Assessoria',
|
||||||
'title_line' => 'Assessoria',
|
'title_line' => 'Assessoria',
|
||||||
'title_emphasis' => 'Parcial',
|
'title_emphasis' => 'Parcial',
|
||||||
'hero_lead' => 'Para retomar o planejamento, organizar o que falta e seguir com acompanhamento profissional.',
|
'hero_lead' => 'A Amare entra no momento em que vocês estão, compreende o que já foi construído e assume a gestão das etapas necessárias dentro do planejamento.',
|
||||||
'benefits' => [
|
'benefits' => [
|
||||||
['icon_key' => 'checklist', 'label' => 'Diagnóstico completo'],
|
['icon_key' => 'checklist', 'label' => 'Diagnóstico do que já existe'],
|
||||||
['icon_key' => 'calendar', 'label' => 'Organização integral'],
|
['icon_key' => 'calendar', 'label' => 'Pendências organizadas'],
|
||||||
['icon_key' => 'users', 'label' => 'Fornecedores selecionados'],
|
['icon_key' => 'users', 'label' => 'Fornecedores acompanhados'],
|
||||||
['icon_key' => 'heart', 'label' => 'Experiência leve e inesquecível'],
|
['icon_key' => 'heart', 'label' => 'Próximas decisões com clareza'],
|
||||||
],
|
],
|
||||||
'included_items' => [
|
'included_items' => [
|
||||||
['icon_key' => 'checklist', 'title' => 'Diagnóstico do planejamento', 'description' => 'Um olhar profissional sobre o que já existe.'],
|
['icon_key' => 'checklist', 'title' => 'Diagnóstico do planejamento', 'description' => 'Um olhar profissional sobre o que o casal já construiu.'],
|
||||||
['icon_key' => 'calendar', 'title' => 'Organização das pendências', 'description' => 'Prioridades claras, etapa a etapa.'],
|
['icon_key' => 'calendar', 'title' => 'Etapas pendentes', 'description' => 'O que falta ganha ordem, prazo e prioridade.'],
|
||||||
['icon_key' => 'map', 'title' => 'Gestão de fornecedores', 'description' => 'Contatos e prazos sob cuidado.'],
|
['icon_key' => 'map', 'title' => 'Fornecedores já contratados', 'description' => 'Gestão e comunicação com quem já está no projeto.'],
|
||||||
['icon_key' => 'spark', 'title' => 'Gestão dos próximos passos', 'description' => 'Um plano para chegar tranquilo ao grande dia.'],
|
['icon_key' => 'spark', 'title' => 'Próximas decisões', 'description' => 'Orientação para seguir sem retrabalho.'],
|
||||||
['icon_key' => 'users', 'title' => 'Acompanhamento contínuo', 'description' => 'Perto do casal em cada decisão.'],
|
['icon_key' => 'users', 'title' => 'Cronograma do evento', 'description' => 'A operação do grande dia começa a ficar visível.'],
|
||||||
['icon_key' => 'heart', 'title' => 'Dia do evento', 'description' => 'Coordenação total para o casal viver o momento.'],
|
['icon_key' => 'heart', 'title' => 'Coordenação no grande dia', 'description' => 'Execução acompanhada para o casal viver o momento.'],
|
||||||
],
|
],
|
||||||
'audience_heading' => 'Para quem é este pacote',
|
'audience_heading' => 'Para quem é esta modalidade',
|
||||||
'audience_intro' => 'Para quem já começou a planejar e quer retomar as rédeas com acompanhamento profissional.',
|
'audience_intro' => 'Para quem já deu os primeiros passos, mas deseja seguir com mais segurança, organização e tranquilidade.',
|
||||||
'audience_points' => [
|
'audience_points' => [
|
||||||
'Casamentos em andamento',
|
'Casais que já iniciaram o planejamento',
|
||||||
'Casais com pouco tempo disponível',
|
'Quem já tem parte dos fornecedores ou decisões definidas',
|
||||||
'Quem precisa priorizar pendências',
|
'Quem quer condução profissional nas etapas que faltam',
|
||||||
'Quem busca fornecedores confiáveis',
|
|
||||||
],
|
],
|
||||||
'final_cta_heading' => 'Pronta para retomar?',
|
'final_cta_heading' => 'Vamos organizar o que falta?',
|
||||||
'final_cta_body' => 'Conte onde seu planejamento está e receba uma proposta.',
|
'final_cta_body' => 'Conte onde o planejamento está. A Amare entra nesse momento e conduz as próximas etapas.',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => 'Grand Jour',
|
'name' => 'Grand Jour',
|
||||||
'slug' => 'grand-jour',
|
'slug' => 'grand-jour',
|
||||||
'level' => '03 / FINAL',
|
'level' => '03 / FINAL',
|
||||||
'tag' => 'Assessoria final',
|
'tag' => 'Assessoria final',
|
||||||
'subtitle' => 'O planejamento está pronto. Agora é hora de viver.',
|
'subtitle' => 'Para quem já planejou e precisa de alguém para assumir a operação.',
|
||||||
'summary' => 'Para casais na reta final que precisam de uma equipe para assumir alinhamentos, cronograma e operação.',
|
'summary' => 'Indicada para casais que estão na reta final dos preparativos e já possuem a maior parte do casamento definida.',
|
||||||
'scope_items' => [
|
'scope_items' => [
|
||||||
'Imersão no planejamento existente',
|
'Imersão no planejamento existente',
|
||||||
'Conferência das informações',
|
'Conferência das informações e contratos dos fornecedores',
|
||||||
'Alinhamento dos fornecedores',
|
'Alinhamento e comunicação com os profissionais envolvidos',
|
||||||
'Organização do cronograma final',
|
'Organização do cronograma final',
|
||||||
'Gestão da operação do evento',
|
'Orientação sobre os últimos detalhes',
|
||||||
|
'Coordenação dos fornecedores no evento',
|
||||||
|
'Acompanhamento da montagem e dos momentos do casamento',
|
||||||
|
'Gestão da operação durante o grande dia',
|
||||||
],
|
],
|
||||||
'cta_label' => 'Quero conhecer a Grand Jour',
|
'cta_label' => 'Quero conhecer a Grand Jour',
|
||||||
'compare_heading' => 'Entregar a operação para a Amare',
|
'compare_heading' => 'Entregar a operação para a Amare',
|
||||||
'compare_summary' => 'O projeto está pronto e o foco passa a ser alinhamento e execução.',
|
'compare_summary' => 'O projeto está pronto; o foco passa a ser alinhamento e execução.',
|
||||||
'sort_order' => 3,
|
'sort_order' => 3,
|
||||||
'eyebrow' => 'Assessoria',
|
'eyebrow' => 'Assessoria',
|
||||||
'title_line' => 'Assessoria',
|
'title_line' => 'Assessoria',
|
||||||
'title_emphasis' => 'Final',
|
'title_emphasis' => 'Final',
|
||||||
'hero_lead' => 'Para assumir os alinhamentos e a operação quando o grande dia está próximo.',
|
'hero_lead' => 'A Amare assume a condução operacional, mergulha no planejamento construído pelo casal e transforma as informações em uma execução organizada e alinhada.',
|
||||||
'benefits' => [
|
'benefits' => [
|
||||||
['icon_key' => 'checklist', 'label' => 'Imersão no que já existe'],
|
['icon_key' => 'checklist', 'label' => 'Imersão no planejamento'],
|
||||||
['icon_key' => 'users', 'label' => 'Alinhamento de fornecedores'],
|
['icon_key' => 'users', 'label' => 'Fornecedores alinhados'],
|
||||||
['icon_key' => 'calendar', 'label' => 'Cronograma final'],
|
['icon_key' => 'calendar', 'label' => 'Cronograma final'],
|
||||||
['icon_key' => 'heart', 'label' => 'Operação com leveza'],
|
['icon_key' => 'heart', 'label' => 'Operação no grande dia'],
|
||||||
],
|
],
|
||||||
'included_items' => [
|
'included_items' => [
|
||||||
['icon_key' => 'checklist', 'title' => 'Imersão no planejamento', 'description' => 'Entendemos cada decisão já tomada.'],
|
['icon_key' => 'checklist', 'title' => 'Imersão no planejamento', 'description' => 'A Amare mergulha no que o casal já decidiu.'],
|
||||||
['icon_key' => 'map', 'title' => 'Alinhamento de fornecedores', 'description' => 'Contatos e prazos sob cuidado.'],
|
['icon_key' => 'map', 'title' => 'Contratos e informações', 'description' => 'Conferência do combinado com cada profissional.'],
|
||||||
['icon_key' => 'calendar', 'title' => 'Cronograma final', 'description' => 'Cada etapa posicionada na reta final.'],
|
['icon_key' => 'users', 'title' => 'Alinhamento dos envolvidos', 'description' => 'Comunicação centralizada na reta final.'],
|
||||||
['icon_key' => 'spark', 'title' => 'Ensaios e detalhes', 'description' => 'Produção e logística nos detalhes.'],
|
['icon_key' => 'calendar', 'title' => 'Cronograma final', 'description' => 'A operação do grande dia ganha ordem.'],
|
||||||
['icon_key' => 'users', 'title' => 'Operação do evento', 'description' => 'Gestão da equipe e do dia a dia.'],
|
['icon_key' => 'spark', 'title' => 'Últimos detalhes', 'description' => 'Orientação para fechar o que ainda falta.'],
|
||||||
['icon_key' => 'heart', 'title' => 'Dia do evento', 'description' => 'Coordenação total para o casal viver o momento.'],
|
['icon_key' => 'heart', 'title' => 'Gestão da operação', 'description' => 'Montagem, momentos e condução no dia do casamento.'],
|
||||||
],
|
],
|
||||||
'audience_heading' => 'Para quem é este pacote',
|
'audience_heading' => 'Para quem é esta modalidade',
|
||||||
'audience_intro' => 'Para casais já planejados que querem chegar ao grande dia com equipe e operação no lugar.',
|
'audience_intro' => 'Porque, na reta final, vocês não precisam de mais tarefas. Precisam de alguém que assuma a condução.',
|
||||||
'audience_points' => [
|
'audience_points' => [
|
||||||
'Casamentos já planejados',
|
'Casais na reta final dos preparativos',
|
||||||
'Casais na reta final',
|
'Quem já definiu a maior parte do casamento',
|
||||||
'Quem precisa de operação no dia',
|
'Quem quer entregar a operação do grande dia',
|
||||||
'Quem quer viver o momento com leveza',
|
|
||||||
],
|
],
|
||||||
'final_cta_heading' => 'Pronta para o grande dia?',
|
'final_cta_heading' => 'Vamos assumir a operação?',
|
||||||
'final_cta_body' => 'Conte a data do seu evento e receba uma proposta.',
|
'final_cta_body' => 'Conte a data e o que já está definido. A Amare entra para conduzir o grande dia.',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,33 @@ class WeddingPackageTest extends TestCase
|
|||||||
['Essenza', 'Conduzione', 'Grand Jour'],
|
['Essenza', 'Conduzione', 'Grand Jour'],
|
||||||
WeddingPackage::query()->published()->orderBy('sort_order')->pluck('name')->all(),
|
WeddingPackage::query()->published()->orderBy('sort_order')->pluck('name')->all(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$essenza = WeddingPackage::query()->where('name', 'Essenza')->first();
|
||||||
|
$this->assertNotNull($essenza);
|
||||||
|
$this->assertSame('Assessoria completa', $essenza->tag);
|
||||||
|
$this->assertSame('Do primeiro planejamento ao grande dia.', $essenza->subtitle);
|
||||||
|
$this->assertStringContainsString('desde o início da organização', (string) $essenza->summary);
|
||||||
|
$this->assertContains('Estruturação e acompanhamento do planejamento', $essenza->scope_items);
|
||||||
|
$this->assertSame(
|
||||||
|
['Casais no início da organização', 'Quem ainda está estruturando etapas importantes', 'Quem quer acompanhamento do planejamento à execução'],
|
||||||
|
$essenza->audience_points,
|
||||||
|
);
|
||||||
|
|
||||||
|
$publicCopy = WeddingPackage::query()->published()->get()->map(fn (WeddingPackage $package): string => json_encode([
|
||||||
|
$package->summary,
|
||||||
|
$package->subtitle,
|
||||||
|
$package->hero_lead,
|
||||||
|
$package->scope_items,
|
||||||
|
$package->included_items,
|
||||||
|
$package->audience_intro,
|
||||||
|
$package->final_cta_body,
|
||||||
|
], JSON_THROW_ON_ERROR))->implode(' ');
|
||||||
|
|
||||||
|
$this->assertStringNotContainsString('R$', $publicCopy);
|
||||||
|
$this->assertStringNotContainsString('3.500', $publicCopy);
|
||||||
|
$this->assertStringNotContainsString('Assessoria VIP', $publicCopy);
|
||||||
|
$this->assertStringNotContainsString('90 km', $publicCopy);
|
||||||
|
$this->assertStringNotContainsString('3,49%', $publicCopy);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_factory_generates_a_slug_and_autofills_blank_slug_from_name(): void
|
public function test_factory_generates_a_slug_and_autofills_blank_slug_from_name(): void
|
||||||
|
|||||||
Reference in New Issue
Block a user