// Sistema de Gerenciamento de Aplicativo de Venda
// Armazenamento local para simular backend
// Inicializar dados se não existirem
function initStorage() {
if (!localStorage.getItem('users')) {
localStorage.setItem('users', JSON.stringify([]));
}
if (!localStorage.getItem('products')) {
localStorage.setItem('products', JSON.stringify([
{
id: 1,
type: 'hosting',
name: 'Basic Hosting',
price: 2.99,
features: ['10GB Storage', '10 Websites', '10 Email Accounts']
},
{
id: 2,
type: 'hosting',
name: 'Pro Hosting',
price: 5.99,
features: ['50GB Storage', '100 Websites', '100 Email Accounts']
},
{
id: 3,
type: 'hosting',
name: 'Premium Hosting',
price: 9.99,
features: ['100GB Storage', 'Unlimited Websites', 'Unlimited Email Accounts']
},
{
id: 4,
type: 'app',
name: 'App Hosting Starter',
price: 19.99,
features: ['Node.js, Python, PHP', '512MB RAM', '10GB Storage', 'Auto Scaling']
},
{
id: 5,
type: 'app',
name: 'App Hosting Pro',
price: 39.99,
features: ['All Runtimes', '2GB RAM', '50GB Storage', 'CI/CD Integration']
},
{
id: 6,
type: 'domain',
name: '.com Domain',
price: 12.99,
features: ['1 Year Registration', 'Free Privacy Protection', 'DNS Management']
},
{
id: 7,
type: 'domain',
name: '.net Domain',
price: 14.99,
features: ['1 Year Registration', 'Free Privacy Protection', 'DNS Management']
}
]));
}
if (!localStorage.getItem('orders')) {
localStorage.setItem('orders', JSON.stringify([]));
}
if (!localStorage.getItem('tickets')) {
localStorage.setItem('tickets', JSON.stringify([]));
}
if (!localStorage.getItem('domains')) {
localStorage.setItem('domains', JSON.stringify([]));
}
if (!localStorage.getItem('services')) {
localStorage.setItem('services', JSON.stringify([]));
}
if (!localStorage.getItem('aiSubscriptions')) {
localStorage.setItem('aiSubscriptions', JSON.stringify([]));
}
}
// Funções de autenticação
const Auth = {
register: function(userData) {
const users = JSON.parse(localStorage.getItem('users') || '[]');
const existingUser = users.find(u => u.email === userData.email);
if (existingUser) {
return { success: false, message: 'Email já cadastrado' };
}
const newUser = {
id: Date.now(),
...userData,
createdAt: new Date().toISOString()
};
users.push(newUser);
localStorage.setItem('users', JSON.stringify(users));
return { success: true, user: newUser };
},
login: function(email, password) {
const users = JSON.parse(localStorage.getItem('users') || '[]');
const user = users.find(u => u.email === email && u.password === password);
if (user) {
const session = {
userId: user.id,
email: user.email,
name: user.name,
loginTime: new Date().toISOString()
};
localStorage.setItem('currentUser', JSON.stringify(session));
return { success: true, user: session };
}
return { success: false, message: 'Email ou senha incorretos' };
},
logout: function() {
localStorage.removeItem('currentUser');
return { success: true };
},
getCurrentUser: function() {
const userStr = localStorage.getItem('currentUser');
return userStr ? JSON.parse(userStr) : null;
},
isLoggedIn: function() {
return !!localStorage.getItem('currentUser');
}
};
// Funções de produtos
const Products = {
getAll: function() {
return JSON.parse(localStorage.getItem('products') || '[]');
},
getByType: function(type) {
const products = this.getAll();
return products.filter(p => p.type === type);
},
getById: function(id) {
const products = this.getAll();
return products.find(p => p.id === parseInt(id));
}
};
// Funções de pedidos
const Orders = {
create: function(orderData) {
const orders = JSON.parse(localStorage.getItem('orders') || '[]');
const newOrder = {
id: Date.now(),
...orderData,
status: 'pending',
createdAt: new Date().toISOString()
};
orders.push(newOrder);
localStorage.setItem('orders', JSON.stringify(orders));
return newOrder;
},
getByUser: function(userId) {
const orders = JSON.parse(localStorage.getItem('orders') || '[]');
return orders.filter(o => o.userId === userId);
},
getAll: function() {
return JSON.parse(localStorage.getItem('orders') || '[]');
}
};
// Funções de serviços
const Services = {
create: function(serviceData) {
const services = JSON.parse(localStorage.getItem('services') || '[]');
const newService = {
id: Date.now(),
...serviceData,
status: 'active',
createdAt: new Date().toISOString()
};
services.push(newService);
localStorage.setItem('services', JSON.stringify(services));
return newService;
},
getByUser: function(userId) {
const services = JSON.parse(localStorage.getItem('services') || '[]');
return services.filter(s => s.userId === userId);
},
getAll: function() {
return JSON.parse(localStorage.getItem('services') || '[]');
},
update: function(serviceId, updates) {
const services = JSON.parse(localStorage.getItem('services') || '[]');
const index = services.findIndex(s => s.id === serviceId);
if (index !== -1) {
services[index] = { ...services[index], ...updates };
localStorage.setItem('services', JSON.stringify(services));
return services[index];
}
return null;
}
};
// Funções de domínios
const Domains = {
search: function(domainName) {
// Simulação de busca de domínio
const domains = JSON.parse(localStorage.getItem('domains') || '[]');
const existing = domains.find(d => d.name === domainName);
return {
available: !existing,
name: domainName,
price: 12.99
};
},
register: function(domainData) {
const domains = JSON.parse(localStorage.getItem('domains') || '[]');
const newDomain = {
id: Date.now(),
...domainData,
status: 'active',
expiresAt: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toISOString(),
createdAt: new Date().toISOString()
};
domains.push(newDomain);
localStorage.setItem('domains', JSON.stringify(domains));
return newDomain;
},
getByUser: function(userId) {
const domains = JSON.parse(localStorage.getItem('domains') || '[]');
return domains.filter(d => d.userId === userId);
}
};
// Funções de tickets de suporte
const Tickets = {
create: function(ticketData) {
const tickets = JSON.parse(localStorage.getItem('tickets') || '[]');
const newTicket = {
id: Date.now(),
...ticketData,
status: 'open',
messages: [{
id: 1,
message: ticketData.message,
sender: 'user',
timestamp: new Date().toISOString()
}],
createdAt: new Date().toISOString()
};
tickets.push(newTicket);
localStorage.setItem('tickets', JSON.stringify(tickets));
return newTicket;
},
getByUser: function(userId) {
const tickets = JSON.parse(localStorage.getItem('tickets') || '[]');
return tickets.filter(t => t.userId === userId);
},
getAll: function() {
return JSON.parse(localStorage.getItem('tickets') || '[]');
},
addMessage: function(ticketId, message, sender = 'user') {
const tickets = JSON.parse(localStorage.getItem('tickets') || '[]');
const ticket = tickets.find(t => t.id === ticketId);
if (ticket) {
ticket.messages.push({
id: ticket.messages.length + 1,
message,
sender,
timestamp: new Date().toISOString()
});
localStorage.setItem('tickets', JSON.stringify(tickets));
return ticket;
}
return null;
},
updateStatus: function(ticketId, status) {
const tickets = JSON.parse(localStorage.getItem('tickets') || '[]');
const ticket = tickets.find(t => t.id === ticketId);
if (ticket) {
ticket.status = status;
localStorage.setItem('tickets', JSON.stringify(tickets));
return ticket;
}
return null;
}
};
// Funções de pagamento
const Payments = {
process: function(paymentData) {
// Simulação de processamento de pagamento
return {
success: true,
transactionId: 'TXN' + Date.now(),
amount: paymentData.amount,
timestamp: new Date().toISOString()
};
}
};
// Funções de Assinatura IA
const AISubscription = {
plans: [
{
id: 'basic',
name: 'Básico',
price: 29.90,
credits: 100,
requestsPerDay: 20,
features: ['100 créditos/mês', '20 requisições/dia', 'Suporte por email']
},
{
id: 'pro',
name: 'Profissional',
price: 79.90,
credits: 500,
requestsPerDay: 100,
features: ['500 créditos/mês', '100 requisições/dia', 'Suporte prioritário', 'API Access']
},
{
id: 'enterprise',
name: 'Empresarial',
price: 199.90,
credits: 2000,
requestsPerDay: 500,
features: ['2000 créditos/mês', '500 requisições/dia', 'Suporte 24/7', 'API Access', 'Custom Models']
}
],
subscribe: function(userId, planId) {
const plan = this.plans.find(p => p.id === planId);
if (!plan) {
return { success: false, message: 'Plano não encontrado' };
}
const subscriptions = JSON.parse(localStorage.getItem('aiSubscriptions') || '[]');
const existing = subscriptions.find(s => s.userId === userId);
const subscription = {
userId,
planId,
planName: plan.name,
credits: plan.credits,
requestsPerDay: plan.requestsPerDay,
requestsToday: 0,
active: true,
startDate: new Date().toISOString(),
endDate: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(), // 30 dias
price: plan.price
};
if (existing) {
const index = subscriptions.indexOf(existing);
subscriptions[index] = subscription;
} else {
subscriptions.push(subscription);
}
localStorage.setItem('aiSubscriptions', JSON.stringify(subscriptions));
return { success: true, subscription };
},
getByUser: function(userId) {
const subscriptions = JSON.parse(localStorage.getItem('aiSubscriptions') || '[]');
const subscription = subscriptions.find(s => s.userId === userId);
if (subscription) {
// Verificar se está ativa
const endDate = new Date(subscription.endDate);
if (endDate < new Date()) {
subscription.active = false;
}
// Resetar contador diário se necessário
const lastReset = new Date(subscription.lastReset || subscription.startDate);
const today = new Date();
if (lastReset.toDateString() !== today.toDateString()) {
subscription.requestsToday = 0;
subscription.lastReset = today.toISOString();
this.update(subscription);
}
}
return subscription;
},
update: function(subscription) {
const subscriptions = JSON.parse(localStorage.getItem('aiSubscriptions') || '[]');
const index = subscriptions.findIndex(s => s.userId === subscription.userId);
if (index !== -1) {
subscriptions[index] = subscription;
localStorage.setItem('aiSubscriptions', JSON.stringify(subscriptions));
}
},
useCredit: function(userId) {
const subscription = this.getByUser(userId);
if (subscription && subscription.active) {
if (subscription.credits > 0 && subscription.requestsToday < subscription.requestsPerDay) {
subscription.credits--;
subscription.requestsToday++;
this.update(subscription);
return true;
}
}
return false;
}
};
// Inicializar ao carregar
if (typeof window !== 'undefined') {
initStorage();
}
// Exportar para uso global
if (typeof window !== 'undefined') {
window.Auth = Auth;
window.Products = Products;
window.Orders = Orders;
window.Services = Services;
window.Domains = Domains;
window.Tickets = Tickets;
window.Payments = Payments;
window.AISubscription = AISubscription;
}
Skip to content
Suporte – DC Infinity Host DCINFINITYHOST Hospedagem Aplicativos Domínios Suporte Entrar Cadastrar Área do Cliente Sair Central de Suporte Estamos aqui para ajudar. Abra um ticket de suporte e nossa equipe responderá o mais rápido possível. 📧 Email Envie-nos um email dc.netfibraoptica@gmail.com WhatsApp Fale conosco pelo WhatsApp (61) 99608-8711 Faça login para continuar Você precisa…
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!