feat: add legal document acceptance and standard project files generation

Implement legal document acceptance tracking requiring users to accept
terms of service and privacy policy before continuing to use the system.
Add automatic generation of standard project files (LICENSE, README.md,
RULES.md, cookies.html, termos-de-uso.html, privacidade.html) with
download functionality. Enhance prompt building with detailed Portuguese
instructions and system requirements. Update seeders with comprehensive
legal content and standard files configuration for all prompt templates.
This commit is contained in:
2026-10-07 21:30:40 -03:00
parent 9b21d11e75
commit f2bca340f9
13 changed files with 883 additions and 75 deletions
@@ -34,10 +34,46 @@
<input type="text" class="form-control" id="category" name="category" value="{{ old('category') }}">
@error('category') <div class="text-danger small">{{ $message }}</div> @enderror
</div>
<div class="card mb-3 border-info">
<div class="card-header bg-info bg-opacity-10 py-2">
<h6 class="mb-0 text-info"><i class="bi bi-file-earmark-text me-1"></i>Arquivos Padrão do Projeto</h6>
</div>
<div class="card-body">
<p class="small text-muted mb-2">Estes arquivos serao gerados automaticamente em todo projeto criado com este template, em conformidade com a legislacao brasileira (LGPD):</p>
<div class="row row-cols-2 row-cols-md-3 g-2">
<div class="col"><span class="badge bg-light text-dark border p-2 w-100 text-start"><i class="bi bi-file-text me-1 text-primary"></i>LICENSE</span></div>
<div class="col"><span class="badge bg-light text-dark border p-2 w-100 text-start"><i class="bi bi-file-text me-1 text-success"></i>README.md</span></div>
<div class="col"><span class="badge bg-light text-dark border p-2 w-100 text-start"><i class="bi bi-file-text me-1 text-warning"></i>RULES.md</span></div>
<div class="col"><span class="badge bg-light text-dark border p-2 w-100 text-start"><i class="bi bi-cookie me-1 text-info"></i>cookies.html</span></div>
<div class="col"><span class="badge bg-light text-dark border p-2 w-100 text-start"><i class="bi bi-shield-check me-1 text-secondary"></i>termos-de-uso.html</span></div>
<div class="col"><span class="badge bg-light text-dark border p-2 w-100 text-start"><i class="bi bi-lock me-1 text-danger"></i>privacidade.html</span></div>
</div>
</div>
</div>
<div class="mb-3">
<label for="template_data" class="form-label">Dados do Template (JSON)</label>
<textarea class="form-control font-monospace" id="template_data" name="template_data" rows="20" required>{{ old('template_data') }}</textarea>
@error('template_data') <div class="text-danger small">{{ $message }}</div> @enderror
<div class="form-text small">
O campo <code>standard_files</code> (true/false) controla se os arquivos padrao serao incluidos.
Use o exemplo abaixo como referencia:
<pre class="mt-1 p-2 bg-light rounded small">{
"title": "Meu Template",
"objective": "Objetivo do projeto",
"context": "Contexto do projeto",
"persona": "Persona do assistente",
"tone": "Tom de comunicação",
"constraints": "Restrições e regras",
"output_format": "Formato de saída esperado",
"examples": "Exemplos de entrada/saída",
"variables": "var1, var2",
"temperature": 0.7,
"max_tokens": 4096,
"standard_files": true
}</pre>
</div>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="is_public" name="is_public" value="1" {{ old('is_public', true) ? 'checked' : '' }}>
@@ -48,4 +84,4 @@
</form>
</div>
</div>
@endsection
@endsection