feat(cms): implement complete SysSiteCMS content management system

Initial implementation of the HomeSysPanel CMS built with Laravel 13.0.
Includes complete admin panel, content management, user authentication,
modular architecture for products/services/chatbot, and marketing tools.

Key features:
- User authentication with email verification and password reset
- Role-based access control (Admin/User with granular permissions)
- Content management (pages, news, FAQ, downloads, galleries, banners)
- Contact management system with subjects and responses
- Marketing tools (email campaigns, visitor analytics, social sharing)
- Modular architecture (Products, Services, Chatbot modules)
- AI Chatbot integration with OpenRouter.ai and LlamaCpp support
- Visitor tracking with geolocation
- SEO optimization with meta tags and Open Graph
- Responsive design with Bootstrap 5
- Dark mode support
- Maintenance mode
- Feature request system
This commit is contained in:
marco
2026-09-07 19:06:53 -03:00
commit 38295e7e88
279 changed files with 33691 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
@extends('layouts.admin')
@section('title', 'Chatbot - Nova Informação')
@section('content')
<div class="container-fluid px-4">
<!-- Page Heading -->
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 text-gray-800">
<i class="bi bi-robot me-2"></i>Nova Informação para o Chatbot
</h1>
<a href="{{ route('admin.chatbot.index') }}" class="btn btn-secondary btn-sm">
<i class="bi bi-arrow-left me-1"></i>Voltar
</a>
</div>
@if($errors->any())
<div class="alert alert-danger">
<ul class="mb-0">
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="card shadow">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Dados da Informação</h6>
</div>
<div class="card-body">
<form action="{{ route('admin.chatbot.store') }}" method="POST">
@csrf
<div class="form-group row">
<label for="title" class="col-sm-2 col-form-label">Título <span class="text-danger">*</span></label>
<div class="col-sm-10">
<input type="text" class="form-control" id="title" name="title"
value="{{ old('title') }}" placeholder="Ex: Horário de funcionamento" required>
<small class="text-muted">Um título descritivo para identificar esta informação.</small>
</div>
</div>
<div class="form-group row">
<label for="category" class="col-sm-2 col-form-label">Categoria <span class="text-danger">*</span></label>
<div class="col-sm-10">
<select class="form-control" id="category" name="category" required>
@foreach($categories as $value => $label)
<option value="{{ $value }}" {{ old('category') == $value ? 'selected' : '' }}>
{{ $label }}
</option>
@endforeach
</select>
</div>
</div>
<div class="form-group row">
<label for="content" class="col-sm-2 col-form-label">Conteúdo <span class="text-danger">*</span></label>
<div class="col-sm-10">
<textarea class="form-control" id="content" name="content" rows="6" required
placeholder="Ex: Funcionamos de segunda a sexta, das 8h às 18h, e aos sábados das 8h às 12h.">{{ old('content') }}</textarea>
<small class="text-muted">Descreva a informação em detalhes. Quanto mais detalhada, melhor será a resposta do assistente.</small>
</div>
</div>
<div class="form-group row">
<label for="restrictions" class="col-sm-2 col-form-label">Restrições</label>
<div class="col-sm-10">
<textarea class="form-control" id="restrictions" name="restrictions" rows="3"
placeholder="Ex: Não informar valores exatos de serviços, apenas faixas de preço.">{{ old('restrictions') }}</textarea>
<small class="text-muted">O que a IA <strong>NÃO</strong> deve fazer ou informar sobre este tópico. Deixe vazio se não houver restrições.</small>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10 offset-sm-2">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="active" name="active"
{{ old('active', true) ? 'checked' : '' }}>
<label class="custom-control-label" for="active">Informação ativa (visível para o assistente)</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10 offset-sm-2">
<button type="submit" class="btn btn-primary">
<i class="bi bi-check-circle me-1"></i>Salvar Informação
</button>
<a href="{{ route('admin.chatbot.index') }}" class="btn btn-secondary ml-2">Cancelar</a>
</div>
</div>
</form>
</div>
</div>
</div>
@endsection