{
    "project_name": "Barbearia do Zé",
    "tagline": "Gestão ágil e descomplicada de agendamentos, clientes e finanças para barbearias",
    "stack": "php-8.2+mysql+bootstrap-5",
    "version": 1,
    "modules": [
        "auth",
        "users",
        "settings",
        "roles",
        "clients",
        "appointments",
        "calendar",
        "financial"
    ],
    "entities": [
        {
            "table": "clients",
            "label": "Clientes",
            "label_singular": "Cliente",
            "icon": "people",
            "fields": [
                {
                    "name": "name",
                    "label": "Nome Completo",
                    "type": "string",
                    "required": true,
                    "options": []
                },
                {
                    "name": "phone",
                    "label": "WhatsApp / Telefone",
                    "type": "phone",
                    "required": true,
                    "options": []
                },
                {
                    "name": "email",
                    "label": "E-mail",
                    "type": "email",
                    "required": false,
                    "options": []
                },
                {
                    "name": "birth_date",
                    "label": "Data de Nascimento",
                    "type": "date",
                    "required": false,
                    "options": []
                },
                {
                    "name": "notes",
                    "label": "Observações e Preferências",
                    "type": "text",
                    "required": false,
                    "options": []
                }
            ]
        },
        {
            "table": "barbers",
            "label": "Barbeiros",
            "label_singular": "Barbeiro",
            "icon": "scissors",
            "fields": [
                {
                    "name": "name",
                    "label": "Nome",
                    "type": "string",
                    "required": true,
                    "options": []
                },
                {
                    "name": "phone",
                    "label": "Telefone",
                    "type": "phone",
                    "required": true,
                    "options": []
                },
                {
                    "name": "commission_rate",
                    "label": "Taxa de Comissão (%)",
                    "type": "decimal",
                    "required": true,
                    "options": []
                },
                {
                    "name": "status",
                    "label": "Status",
                    "type": "select",
                    "required": true,
                    "options": [
                        "Ativo",
                        "Inativo"
                    ]
                },
                {
                    "name": "user_id",
                    "label": "Usuário Vinculado",
                    "type": "integer",
                    "required": false,
                    "options": []
                }
            ]
        },
        {
            "table": "services",
            "label": "Serviços",
            "label_singular": "Serviço",
            "icon": "bag-check",
            "fields": [
                {
                    "name": "name",
                    "label": "Nome do Serviço",
                    "type": "string",
                    "required": true,
                    "options": []
                },
                {
                    "name": "price",
                    "label": "Preço",
                    "type": "money",
                    "required": true,
                    "options": []
                },
                {
                    "name": "duration_minutes",
                    "label": "Duração em Minutos",
                    "type": "integer",
                    "required": true,
                    "options": []
                },
                {
                    "name": "description",
                    "label": "Descrição",
                    "type": "text",
                    "required": false,
                    "options": []
                },
                {
                    "name": "is_active",
                    "label": "Ativo",
                    "type": "boolean",
                    "required": true,
                    "options": []
                }
            ]
        },
        {
            "table": "appointments",
            "label": "Agendamentos",
            "label_singular": "Agendamento",
            "icon": "calendar-event",
            "fields": [
                {
                    "name": "client_id",
                    "label": "Cliente",
                    "type": "integer",
                    "required": true,
                    "options": []
                },
                {
                    "name": "barber_id",
                    "label": "Barbeiro",
                    "type": "integer",
                    "required": true,
                    "options": []
                },
                {
                    "name": "service_id",
                    "label": "Serviço",
                    "type": "integer",
                    "required": true,
                    "options": []
                },
                {
                    "name": "appointment_time",
                    "label": "Data e Hora",
                    "type": "datetime",
                    "required": true,
                    "options": []
                },
                {
                    "name": "total_price",
                    "label": "Valor Cobrado",
                    "type": "money",
                    "required": true,
                    "options": []
                },
                {
                    "name": "status",
                    "label": "Status",
                    "type": "select",
                    "required": true,
                    "options": [
                        "Pendente",
                        "Confirmado",
                        "Concluído",
                        "Cancelado",
                        "Não compareceu"
                    ]
                },
                {
                    "name": "notes",
                    "label": "Observações",
                    "type": "text",
                    "required": false,
                    "options": []
                }
            ]
        },
        {
            "table": "financial_transactions",
            "label": "Transações Financeiras",
            "label_singular": "Transação Financeira",
            "icon": "cash-coin",
            "fields": [
                {
                    "name": "appointment_id",
                    "label": "Agendamento Relacionado",
                    "type": "integer",
                    "required": false,
                    "options": []
                },
                {
                    "name": "barber_id",
                    "label": "Barbeiro (se aplicável)",
                    "type": "integer",
                    "required": false,
                    "options": []
                },
                {
                    "name": "type",
                    "label": "Tipo",
                    "type": "select",
                    "required": true,
                    "options": [
                        "Receita",
                        "Despesa"
                    ]
                },
                {
                    "name": "category",
                    "label": "Categoria",
                    "type": "select",
                    "required": true,
                    "options": [
                        "Atendimento",
                        "Venda de Produto",
                        "Aluguel",
                        "Produtos / Insumos",
                        "Comissão",
                        "Outros"
                    ]
                },
                {
                    "name": "amount",
                    "label": "Valor",
                    "type": "money",
                    "required": true,
                    "options": []
                },
                {
                    "name": "payment_method",
                    "label": "Forma de Pagamento",
                    "type": "select",
                    "required": true,
                    "options": [
                        "Dinheiro",
                        "PIX",
                        "Cartão de Débito",
                        "Cartão de Crédito"
                    ]
                },
                {
                    "name": "transaction_date",
                    "label": "Data da Transação",
                    "type": "date",
                    "required": true,
                    "options": []
                },
                {
                    "name": "description",
                    "label": "Descrição / Detalhes",
                    "type": "string",
                    "required": true,
                    "options": []
                }
            ]
        }
    ],
    "routes": [
        "dashboard",
        "users",
        "clients",
        "barbers",
        "services",
        "appointments",
        "financial_transactions"
    ],
    "permissions": {
        "admin": [
            "*"
        ],
        "user": [
            "clients",
            "barbers",
            "services",
            "appointments",
            "financial_transactions"
        ]
    },
    "design": {
        "font": "Poppins",
        "sidebar_style": "dark",
        "dashboard": {
            "welcome_title": "Bem-vindo ao painel da Barbearia do Zé",
            "welcome_text": "Visão geral rápida do movimento: acompanhe clientes, agendamentos, serviços e as transações financeiras do mês.",
            "kpis": [
                {
                    "label": "Clientes",
                    "table": "clients",
                    "icon": "people"
                },
                {
                    "label": "Agendamentos (Hoje)",
                    "table": "appointments",
                    "icon": "calendar-event"
                },
                {
                    "label": "Serviços Ativos",
                    "table": "services",
                    "icon": "bag-check"
                },
                {
                    "label": "Receitas (Mês)",
                    "table": "financial_transactions",
                    "icon": "cash-coin"
                }
            ]
        },
        "pages": {
            "clients": {
                "layout": "table",
                "subtitle": "Lista de Clientes com contatos, histórico de cortes e preferências"
            },
            "barbers": {
                "layout": "cards",
                "subtitle": "Barbeiros: perfis, taxa de comissão e status"
            },
            "services": {
                "layout": "cards",
                "subtitle": "Serviços oferecidos com preço, duração e descrição"
            },
            "appointments": {
                "layout": "table",
                "subtitle": "Agendamentos com data/hora, barbeiro, cliente e status"
            },
            "financial_transactions": {
                "layout": "table",
                "subtitle": "Transações financeiras: receitas, despesas e categorias para relatórios"
            }
        }
    },
    "created_at": "2026-09-27T14:24:31+00:00"
}