# Guia de Configuração Inicial

## Pré-requisitos

- PHP 8.1 ou superior
- Composer
- Git

## Passos de Instalação

### 1. Clonar o Repositório

```bash
git clone <seu-repositorio>
cd projeto
```

### 2. Instalar Dependências

```bash
composer install
```

### 3. Configurar Arquivo .env

```bash
cp .env.example .env
php artisan key:generate
```

### 4. Criar Diretório de Dados

```bash
mkdir -p storage/data
chmod 755 storage/data
```

### 5. Iniciar o Servidor

```bash
php artisan serve
```

A aplicação estará disponível em `http://localhost:8000`

## Dados de Exemplo

Para criar dados de exemplo, você pode usar o Tinker:

```bash
php artisan tinker
```

Depois execute:

```php
// Criar um plano
$plan = Plan::create([
    'name' => 'Plano Básico',
    'description' => 'Plano básico para pequenas empresas',
    'price' => 99.90,
    'billing_cycle' => 'monthly',
    'is_active' => true
]);

// Criar um usuário
$user = User::create([
    'name' => 'Admin',
    'email' => 'admin@example.com',
    'password' => bcrypt('admin123'),
    'company_name' => 'Minha Empresa',
    'is_active' => true
]);

// Criar uma assinatura
$subscription = Subscription::create([
    'user_id' => $user->attributes['id'],
    'plan_id' => $plan->attributes['id'],
    'status' => 'active',
    'starts_at' => now(),
    'ends_at' => now()->addMonths(1),
    'next_billing_at' => now()->addMonths(1)
]);

exit
```

## Estrutura do Projeto

```
projeto/
├── app/
│   ├── Models/              # Modelos de dados
│   ├── Http/
│   │   ├── Controllers/     # Controladores
│   │   └── Middleware/      # Middlewares
│   ├── Livewire/            # Componentes Livewire
│   ├── Services/            # Serviços
│   ├── Traits/              # Traits (JsonStorable, JsonQuery)
│   └── Console/
├── database/
│   ├── migrations/          # Migrações (para referência)
│   └── seeders/             # Seeders
├── resources/
│   └── views/               # Views Blade
├── routes/
│   ├── web.php              # Rotas web
│   ├── client.php           # Rotas de cliente
│   └── auth.php             # Rotas de autenticação
├── storage/
│   └── data/                # Arquivos JSON de dados
├── .env.example             # Arquivo de exemplo de configuração
└── README_CHANGES.md        # Documentação das alterações
```

## Recursos Principais

### Módulos Implementados

- ✅ **Gestão de Clientes**: Criar, editar, listar e deletar clientes
- ✅ **Gestão de Planos**: Criar, editar, listar e deletar planos de assinatura
- ✅ **Gestão de Assinaturas**: Acompanhar assinaturas ativas, expiradas e canceladas
- ✅ **Transações PIX**: Registrar e acompanhar transações de pagamento
- ✅ **Suporte (Tickets)**: Sistema de tickets para suporte ao cliente
- ✅ **Comunicados**: Enviar comunicados para clientes
- ✅ **Produtos**: Gestão de produtos e serviços
- ✅ **Servidores**: Gestão de servidores e infraestrutura
- ✅ **Configurações**: Configurações da aplicação (MercadoPago, etc.)

### Componentes Livewire

- `Dashboard` - Painel principal com métricas
- `Clients\Index` - Lista de clientes
- `Clients\Create` - Criar novo cliente
- `Plans\Index` - Lista de planos
- `Subscriptions\Index` - Lista de assinaturas
- `Tickets\Index` - Sistema de tickets
- `Announcements\Index` - Comunicados
- `Products\Index` - Gestão de produtos
- `Servers\Index` - Gestão de servidores
- `Settings\MercadoPago` - Configurações de pagamento

## Troubleshooting

### Erro: "Class not found"

Certifique-se de que você executou `composer install` e que o arquivo `.env` está configurado corretamente.

### Erro: "Permission denied" em storage/data

Execute:
```bash
chmod 755 storage/data
chmod 666 storage/data/*.json
```

### Dados não estão sendo salvos

Verifique se o diretório `storage/data/` existe e tem permissões de escrita:
```bash
ls -la storage/data/
```

## Próximos Passos

1. Configure as variáveis de ambiente no arquivo `.env`
2. Crie dados de exemplo usando o Tinker
3. Acesse a aplicação em `http://localhost:8000`
4. Faça login com as credenciais que você criou
5. Explore os módulos da aplicação

## Suporte

Para problemas ou dúvidas, consulte:
- [Documentação do Laravel](https://laravel.com/docs)
- [Documentação do Livewire](https://livewire.laravel.com/docs)

---

**Última atualização**: 23 de Fevereiro de 2026
