{"id":24663803,"url":"https://github.com/zrwusa/bunny-graphql","last_synced_at":"2026-04-13T16:03:13.766Z","repository":{"id":271344770,"uuid":"913064856","full_name":"zrwusa/bunny-graphql","owner":"zrwusa","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-06T07:38:41.000Z","size":476,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T08:28:04.075Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/zrwusa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-07T00:50:36.000Z","updated_at":"2025-04-06T07:38:44.000Z","dependencies_parsed_at":"2025-02-18T08:27:19.539Z","dependency_job_id":"ea020844-4e43-4f95-843e-fb1a3c4addc2","html_url":"https://github.com/zrwusa/bunny-graphql","commit_stats":null,"previous_names":["zrwusa/bunny-graphql"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zrwusa/bunny-graphql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrwusa%2Fbunny-graphql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrwusa%2Fbunny-graphql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrwusa%2Fbunny-graphql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrwusa%2Fbunny-graphql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zrwusa","download_url":"https://codeload.github.com/zrwusa/bunny-graphql/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrwusa%2Fbunny-graphql/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31759540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: 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":[],"created_at":"2025-01-26T05:17:05.356Z","updated_at":"2026-04-13T16:03:13.757Z","avatar_url":"https://github.com/zrwusa.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Description\n\n[//]: # ([Nest]\u0026#40;https://github.com/nestjs/nest\u0026#41; framework TypeScript starter repository.)\n\n## Project setup\n\n```bash\n$ npm install\n```\n\n### .env\n\n```text\nPOSTGRES_HOST=localhost\nPOSTGRES_PORT=5432\nPOSTGRES_USERNAME=postgres\nPOSTGRES_PASSWORD=YOUR_DATABASE_PASSWORD\nPOSTGRES_DATABASE=YOUR_DATABASE_NAME\n```\n\n## Compile and run the project\n\n```bash\n# development\n$ npm run start\n\n# watch mode\n$ npm run start:dev\n\n# production mode\n$ npm run start:prod\n```\n\n## Run tests\n\n```bash\n# unit tests\n$ npm run test\n\n# e2e tests\n$ npm run test:e2e\n\n# test coverage\n$ npm run test:cov\n```\n\n## WebStorm Debugging\n\n```text\nNode interpreter: versions/node/v22.10.0/bin/node) 22.10.0\nTypeScript loader: None\nNode parameters: \nWorking directory: ~/projects/bunny-graphql\nFile: node_modules/.bin/nest\nApplication parameters: start --debug --watch\nEnvironment variables: Environment variables\n```\n\n## Graphql queries and mutations\n\n### Get users\n\n```graphql\nquery {\n    users {\n        id\n        username\n        provider\n        preference {\n            receiveEmails\n            receiveNotifications\n        }\n        profile {\n            bio\n            gender\n        }\n        addresses {\n            addressLine1\n            postalCode\n            addressLine2\n            city\n            country\n        }\n        paymentMethods {\n            paymentType\n        }\n        orders {\n            id\n        }\n        reviews {\n            id\n        }\n    }\n}\n```\n\n### Create user\n\n```graphql\nmutation {\n    createUser(\n        createUserInput: {\n            username: \"Maf\"\n            email: \"xxx@gmail.com\"\n            password: \"Zdd@fafdas\"\n        }\n    ) {\n        username\n        email\n        id\n    }\n}\n\n\n```\n\n### Get user by id\n\n```graphql\nquery {\n    user(id: \"905081365494623249\") {\n        id\n        email\n        username\n    }\n}\n\n```\n\n\n### Get products\n\n```graphql\nquery {\n    products {\n        id\n        name\n        description\n        images {\n            id\n            url\n            position\n        }\n        brand {\n            id\n            name\n        }\n        category {\n            id\n            name\n        }\n        variants {\n            id\n            size\n            sku\n            color\n            prices {\n                id\n                price\n                validFrom\n                validTo\n            }\n            inventories {\n                id\n                quantity\n                warehouse {\n                    id\n                    name\n                    location\n                }\n            }\n            inventoryRecords {\n                id\n                changeQuantity\n                type\n                reason\n            }\n            reviews {\n                id\n                rating\n                comment\n            }\n        }\n        reviews {\n            id\n            rating\n            comment\n        }\n    }\n}\n```\n    \n### Create product\n\n```graphql\nmutation {\n    createProduct(\n        createProductInput: {\n            name: \"Megamax\"\n            brandId: \"25696653144189\"\n            price: 100\n            description: \"Ridgid Megamax Rotary Hammer Head\"\n        }\n    ) {\n        id\n        name\n    }\n}\n```\n\n### Publish new product\n\n```graphql\nmutation {\n    publishProduct(\n        publishProductInput: {\n            name: \"Megamax\"\n            description: {\n                overview: {\n                    model: \"R86400B\"\n                    store_sku: \"1001102029\"\n                    description: \"RIDGID Introduces the MegaMax Brushless 18-Volt Power Base (Tool Only). This head pairs up with any MegaMax Attachment Head to create the most powerful and intelligent interchangeable tool system on the jobsite. This product is Backed by the industry's only lifetime service agreement.\"\n                    features: [\n                        \"MEGAMax is the industry's most powerful interchangeable tool system\"\n                        \"4 directional head positions allow the user to optimize ergonomics based on the application\"\n                        \"Smart Power Base automatically identifies the attachment head and configures tool settings to match\"\n                        \"LED Communication Panel shows the status of the tool and attached head\"\n                        \"Tool-Free Die-Cast Interface provides a secure locking mechanism with release button for quick and easy attachment head changes\"\n                        \"Lifetime Service Agreement: Free parts and service for life with registration\"\n                    ]\n                    includes: [\n                        \"18V OCTANE Brushless MEGAMax Power Base\"\n                        \"Operator's manual\"\n                        \"MegaMax attachment heads (Batteries and Chargers sold separately)\"\n                    ]\n                }\n                manual: [\n                    \"R86400_Operators_Manual-pdf.pdf\"\n                    \"1001102029_warranty-pdf.pdf\"\n                ]\n                accessibility: { pdf_request_contact: \"1-800-628-0525\" }\n                dimensions: {\n                    assembled: {\n                        depth_in: 11.89\n                        height_in: 8.976\n                        weight_lbs: 5.83\n                        width_in: 5.354\n                    }\n                    packaged: {\n                        depth_in: 11.89\n                        height_in: 8.976\n                        weight_lbs: 5.83\n                        width_in: 5.354\n                    }\n                }\n                details: { certified: false, country_of_origin: \"CN - China\" }\n                warranty: {\n                    description: \"Lifetime Service Agreement with registration within 90 days of purchase.\"\n                    contact: \"1-866-539-1710\"\n                }\n            }\n            brand: { name: \"Ridgid\" }\n            category: { name: \"Multi Functional Tools\" }\n            images: [\n                {\n                    url: \"https://images.homedepot.ca/productimages/p_1001102029.jpg?product-images=l\"\n                    position: 4\n                }\n                {\n                    url: \"https://i0.wp.com/toolguyd.com/blog/wp-content/uploads/2018/10/Ridgid-MegaMax-Octane-Tool-Attachments.jpg?resize=590%2C404\u0026ssl=1\"\n                    position: 1\n                }\n                {\n                    url: \"https://images.homedepot.ca/productimages/p_1001102029_alt_R8640_G.jpg?product-images=l\"\n                    position: 3\n                }\n                {\n                    url: \"https://images.homedepot.ca/productimages/p_1001102029_alt_R8640_U.jpg?product-images=l\"\n                    position: 2\n                }\n            ]\n            variants: [\n                {\n                    size: \"30*36*60\"\n                    sku: \"Rigid-Megamax-8600403B\"\n                    color: \"Orange\"\n                    prices: [\n                        {\n                            price: 198\n                            validFrom: \"2025-02-01T08:36:06.000Z\"\n                            validTo: \"2025-02-14T08:36:10.000Z\"\n                        }\n                        {\n                            price: 206\n                            validFrom: \"2025-02-15T08:36:06.000Z\"\n                            validTo: \"2025-03-01T08:36:10.000Z\"\n                        }\n                    ]\n                    inventories: [{ quantity: 100, warehouse: { id: \"1\" } }]\n                    inventoryRecords: [{ changeQuantity: 100, type: \"PURCHASE\" }]\n                }\n                {\n                    size: \"30*32*66\"\n                    sku: \"Rigid-Megamax-8600406B\"\n                    color: \"Orange\"\n                    prices: [\n                        {\n                            price: 536.29\n                            validFrom: \"2025-02-01T08:36:06.000Z\"\n                            validTo: \"2025-02-14T08:36:10.000Z\"\n                        }\n                        {\n                            price: 550.08\n                            validFrom: \"2025-02-15T08:36:06.000Z\"\n                            validTo: \"2025-03-01T08:36:10.000Z\"\n                        }\n                    ]\n                    inventories: [{ quantity: 20, warehouse: { id: \"1\" } }]\n                    inventoryRecords: [{ changeQuantity: 20, type: \"PURCHASE\" }]\n                }\n            ]\n        }\n    ) {\n        id\n        name\n        description\n        images {\n            id\n            url\n            position\n        }\n        brand {\n            id\n            name\n        }\n        category {\n            id\n            name\n        }\n        variants {\n            id\n            size\n            sku\n            color\n            prices {\n                id\n                price\n                validFrom\n                validTo\n            }\n            inventories {\n                id\n                quantity\n                warehouse {\n                    id\n                    name\n                    location\n                }\n            }\n            inventoryRecords {\n                id\n                changeQuantity\n                type\n                reason\n            }\n        }\n    }\n}\n\nmutation {\n    publishProduct(\n        publishProductInput: {\n            name: \"Artisan Series Stand Mixer\"\n            description: {\n                overview: {\n                    model: \"KSM150PS\"\n                    store_sku: \"9876543210\"\n                    description: \"The KitchenAid Artisan Series Stand Mixer features a powerful 325-watt motor, 10-speed slide control, and a tilt-head design for easy access to the bowl. It comes with a 5-quart stainless steel bowl and includes a flat beater, dough hook, and wire whip.\"\n                    features: [\n                        \"325-watt motor for powerful performance\"\n                        \"10-speed slide control for precise mixing\"\n                        \"Tilt-head design for easy access to the bowl\"\n                        \"Includes 5-quart stainless steel bowl\"\n                        \"Comes with flat beater, dough hook, and wire whip\"\n                    ]\n                    includes: [\n                        \"Stand Mixer\"\n                        \"5-quart Stainless Steel Bowl\"\n                        \"Flat Beater\"\n                        \"Dough Hook\"\n                        \"Wire Whip\"\n                    ]\n                }\n                manual: [\"KSM150PS_Manual.pdf\", \"9876543210_Warranty.pdf\"]\n                accessibility: { pdf_request_contact: \"1-800-541-6390\" }\n                dimensions: {\n                    assembled: {\n                        depth_in: 14.0\n                        height_in: 17.5\n                        weight_lbs: 18.0\n                        width_in: 8.7\n                    }\n                    packaged: {\n                        depth_in: 20.0\n                        height_in: 22.0\n                        weight_lbs: 25.0\n                        width_in: 12.0\n                    }\n                }\n                details: { certified: true, country_of_origin: \"USA\" }\n                warranty: {\n                    description: \"1-year limited warranty with registration within 90 days of purchase.\"\n                    contact: \"1-800-541-6390\"\n                }\n            }\n            brand: { name: \"KitchenAid\" }\n            category: { name: \"Home Appliances\" }\n            images: [\n                {\n                    url: \"https://images.thdstatic.com/productImages/4c937e70-256c-4a4e-a8c5-766aeacfd693/svn/matte-blue-velvet-kitchenaid-stand-mixers-ksm150psvb-64_600.jpg\"\n                    position: 1\n                }\n                {\n                    url: \"https://images.thdstatic.com/productImages/dd1eae61-2b86-4e2e-858b-08b0873ff544/svn/matte-blue-velvet-kitchenaid-stand-mixers-ksm150psvb-77.1_max.jpg\"\n                    position: 2\n                }\n            ]\n            variants: [\n                {\n                    size: \"Standard\"\n                    sku: \"KitchenAid-KSM150BP\"\n                    color: \"Empire Red\"\n                    prices: [\n                        {\n                            price: 399.99\n                            validFrom: \"2025-01-01T08:00:00.000Z\"\n                            validTo: \"2025-01-31T23:59:59.000Z\"\n                        }\n                        {\n                            price: 429.99\n                            validFrom: \"2025-02-01T00:00:00.000Z\"\n                            validTo: \"2025-02-28T23:59:59.000Z\"\n                        }\n                    ]\n                    inventories: [{ quantity: 30, warehouse: { id: \"3\" } }]\n                    inventoryRecords: [{ changeQuantity: 30, type: \"PURCHASE\" }]\n                }\n                {\n                    size: \"Large\"\n                    sku: \"KitchenAid-KSM150PS\"\n                    color: \"Onyx Black\"\n                    prices: [\n                        {\n                            price: 399.99\n                            validFrom: \"2025-01-01T08:00:00.000Z\"\n                            validTo: \"2025-01-31T23:59:59.000Z\"\n                        }\n                        {\n                            price: 429.99\n                            validFrom: \"2025-02-01T00:00:00.000Z\"\n                            validTo: \"2025-02-28T23:59:59.000Z\"\n                        }\n                    ]\n                    inventories: [{ quantity: 20, warehouse: { id: \"3\" } }]\n                    inventoryRecords: [{ changeQuantity: 20, type: \"PURCHASE\" }]\n                }\n            ]\n        }\n    ) {\n        id\n        name\n        description\n        images {\n            id\n            url\n            position\n        }\n        brand {\n            id\n            name\n        }\n        category {\n            id\n            name\n        }\n        variants {\n            id\n            size\n            sku\n            color\n            prices {\n                id\n                price\n                validFrom\n                validTo\n            }\n            inventories {\n                id\n                quantity\n                warehouse {\n                    id\n                    name\n                    location\n                }\n            }\n            inventoryRecords {\n                id\n                changeQuantity\n                type\n                reason\n            }\n        }\n    }\n}\n\n```\n\n### Get orders\n\n```graphql\nquery {\n    orders(filterOrderInput: { page: 1, pageSize: 10 }) {\n        id\n        status\n        shippingStatus\n        paymentStatus\n        paymentMethod\n        user {\n            id\n            username\n        }\n        items {\n            price\n            quantity\n            variant {\n                id\n            }\n        }\n    }\n}\n\n```\n\n### Enum\n\n```sql\nSELECT n.nspname AS schema_name,\n       t.typname AS enum_name,\n       e.enumlabel AS enum_value\nFROM pg_type t\nJOIN pg_enum e ON t.oid = e.enumtypid\nJOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\nWHERE n.nspname = 'public';\n```\n\n## Deployment\n\n```bash\n$ npm install -g mau\n$ mau deploy\n```\n\nWith Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than\nmanaging infrastructure.\n\n## Resources\n\u003ctable class=\"waffle\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n    \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth class=\"row-header freezebar-origin-ltr\"\u003e\u003c/th\u003e\n      \u003cth id=\"0C0\" style=\"width:100px;\" class=\"column-headers-background\"\u003eA\u003c/th\u003e\n      \u003cth id=\"0C1\" style=\"width:100px;\" class=\"column-headers-background\"\u003eB\u003c/th\u003e\n      \u003cth id=\"0C2\" style=\"width:100px;\" class=\"column-headers-background\"\u003eC\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R0\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e1\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s0 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:115px;left:-19px\"\u003eOrder Process Step\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s1 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:99px;left:-3px\"\u003eResponsible Microservice\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s2\" dir=\"ltr\"\u003eDescription\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R1\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e2\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003e1. Browsing \u0026amp; Product Selection\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eProduct Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eProvides product details, search, and filtering.\n        \u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R2\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e3\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eInventory Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eEnsures stock availability is displayed.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R3\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e4\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003e2. Adding to Cart\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eCart Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eManages the shopping cart and item quantities.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R4\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e5\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eInventory Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eReserves stock for items in the cart (optional).\n        \u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R5\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e6\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003e3. Checkout Process\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eOrder Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eCreates a new order with selected items.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R6\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e7\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eUser Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:398px;left:-1px\"\u003eRetrieves user address and payment preferences.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R7\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e8\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003e4. Order Placement\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eOrder Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eFinalizes order and updates order status.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R8\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e9\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003e5. Payment Processing\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003ePayment Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eHandles payment transactions and validations.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R9\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e10\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eOrder Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:398px;left:-1px\"\u003eUpdates order status to \u0026quot;Paid\u0026quot; after\n          successful payment.\n        \u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R10\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e11\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003e6. Order Confirmation\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003eNotification Service\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eSends order confirmation email/SMS.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R11\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e12\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eOrder Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:198px;left:-1px\"\u003eStores order details for tracking.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R12\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e13\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003e7. Order Fulfillment\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eInventory Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eUpdates stock levels after order confirmation.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R13\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e14\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eShipping Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003ePrepares shipment details and carrier selection.\n        \u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R14\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e15\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003e8. Shipping \u0026amp; Tracking\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eShipping Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:398px;left:-1px\"\u003eManages order dispatch, tracking, and delivery\n          updates.\n        \u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R15\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e16\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003eNotification Service\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eSends shipping updates and tracking info.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R16\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e17\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003e9. Order Delivery\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eShipping Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eMarks order as \u0026quot;Delivered\u0026quot; upon receipt.\n        \u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R17\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e18\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003eOrder Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eUpdates order status to \u0026quot;Completed\u0026quot;.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R18\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e19\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003e10. Post-Order Actions\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003eReview \u0026amp; Feedback Service\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eCollects user feedback and ratings.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R19\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e20\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:97px;left:-1px\"\u003eReturn \u0026amp; Refund Service\u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:298px;left:-1px\"\u003eHandles return requests and refund processing.\u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"height: 20px\"\u003e\n      \u003cth id=\"0R20\" style=\"height: 20px;\" class=\"row-headers-background\"\u003e\n        \u003cdiv class=\"row-header-wrapper\" style=\"line-height: 20px\"\u003e21\u003c/div\u003e\n      \u003c/th\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd class=\"s3\" dir=\"ltr\"\u003ePayment Service\u003c/td\u003e\n      \u003ctd class=\"s4 softmerge\" dir=\"ltr\"\u003e\n        \u003cdiv class=\"softmerge-inner\" style=\"width:398px;left:-1px\"\u003eProcesses refunds and adjusts payments if needed.\n        \u003c/div\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n\n## Support\n\n## Stay in touch\n\n## License\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzrwusa%2Fbunny-graphql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzrwusa%2Fbunny-graphql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzrwusa%2Fbunny-graphql/lists"}