{"id":22360580,"url":"https://github.com/eric-souzams/lumen-transaction-api","last_synced_at":"2026-05-07T11:34:47.345Z","repository":{"id":44695973,"uuid":"512951671","full_name":"eric-souzams/lumen-transaction-api","owner":"eric-souzams","description":"API developed with Lumen, for a transaction system between two parties.","archived":false,"fork":false,"pushed_at":"2022-07-12T00:56:06.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-26T14:32:37.386Z","etag":null,"topics":["composer","jwt","laravel","lumen","lumen-passport","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eric-souzams.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-12T00:51:41.000Z","updated_at":"2022-07-12T00:56:52.000Z","dependencies_parsed_at":"2022-09-16T21:41:58.305Z","dependency_job_id":null,"html_url":"https://github.com/eric-souzams/lumen-transaction-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eric-souzams/lumen-transaction-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-souzams%2Flumen-transaction-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-souzams%2Flumen-transaction-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-souzams%2Flumen-transaction-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-souzams%2Flumen-transaction-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eric-souzams","download_url":"https://codeload.github.com/eric-souzams/lumen-transaction-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-souzams%2Flumen-transaction-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32735298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","jwt","laravel","lumen","lumen-passport","php"],"created_at":"2024-12-04T16:17:30.889Z","updated_at":"2026-05-07T11:34:47.329Z","avatar_url":"https://github.com/eric-souzams.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Transaction API\n\n## Setup do projeto\n- Lumen Framework\n- Lumen Passport\n\n## Objetivo\nTemos 2 tipos de usuários, os comuns e lojistas, ambos têm carteira com dinheiro e realizam transferências entre eles. Vamos nos atentar **somente** ao fluxo de transferência entre dois usuários.\n\nRequisitos:\n- Para ambos tipos de usuário, precisamos do Nome Completo, CPF, e-mail e Senha. CPF/CNPJ e e-mails devem ser únicos no sistema. Sendo assim, seu sistema deve permitir apenas um cadastro com o mesmo CPF ou endereço de e-mail.\n\n- Usuários podem enviar dinheiro (efetuar transferência) para lojistas e entre usuários.\n\n- Lojistas **só recebem** transferências, não enviam dinheiro para ninguém.\n\n- Antes de finalizar a transferência, deve-se consultar um serviço autorizador externo, use este mock para simular (https://run.mocky.io/v3/8fafdd68-a090-496f-8c9a-3442cf30dae6).\n\n- A operação de transferência deve ser uma transação (ou seja, revertida em qualquer caso de inconsistência) e o dinheiro deve voltar para a carteira do usuário que envia.\n\n- No recebimento de pagamento, o usuário ou lojista precisa receber notificação enviada por um serviço de terceiro e eventualmente este serviço pode estar indisponível/instável. Use este mock para simular o envio (https://run.mocky.io/v3/b19f7b9f-9cbf-4fc6-ad22-dc30601aec04).\n\n- Este serviço deve ser RESTFul.\n\n### Payload\n```json\nPOST /transaction\n{\n    \"value\" : 100.00,\n    \"payer\" : 4,\n    \"payee\" : 15\n}\n```\n\n## Database Model\n```sql\n    table: users\n        id -\u003e uuid\n        name -\u003e string\n        email -\u003e string\n        document_id -\u003e string\n        password -\u003e string\n\n    table: retailers\n        id -\u003e uuid\n        name -\u003e string\n        email -\u003e string\n        document_id -\u003e string\n        password -\u003e string\n\n    table: wallets\n        id -\u003e uuid\n        user_id -\u003e foreignUuid\n        balance -\u003e decimal\n    \n    table: wallet_transactions\n        id -\u003e uuid\n        payer_wallet_id -\u003e foreignUuid\n        payee_wallet_id -\u003e foreignUuid\n        amount -\u003e decimal\n```\n\n## Auth\n[ ] Autenticação\n\n[ ] Coverage (Controller/Repository)\n\n## Transaction\n[ ] Lojistas não podem fazer uma transferencia\n\n[ ] Criar transferencia de uma conta para outra\n\n[ ] Coverage\n\n\n\u003cbr /\u003e\n\n## Materiais úteis\n- https://hub.packtpub.com/why-we-need-design-patterns/\n- http://br.phptherightway.com/\n- https://girorme.github.io/2019/09/04/psr-12-pt-br/\n- https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-testing\n- https://github.com/exakat/php-static-analysis-tools\n- https://martinfowler.com/articles/microservices.htm\n\n## License\nThe Lumen framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feric-souzams%2Flumen-transaction-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feric-souzams%2Flumen-transaction-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feric-souzams%2Flumen-transaction-api/lists"}