{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/auth/":{"post":{"tags":["authentication"],"summary":"Login For Access Token","operationId":"login_for_access_token_auth__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"tags":["home"],"summary":"Redirect To Docs","operationId":"redirect_to_docs__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health-check":{"get":{"tags":["home"],"summary":"Health Check","operationId":"health_check_health_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/version":{"get":{"tags":["home"],"summary":"Health Check","operationId":"health_check_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/users/":{"post":{"tags":["users"],"summary":"Create User","operationId":"create_user_users__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{user_id}":{"put":{"tags":["users"],"summary":"Update User","operationId":"update_user_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEdit"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEdit"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/statement/":{"post":{"tags":["statement"],"summary":"Create Statement","operationId":"create_statement_statement__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatementCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/generate-random-statement/{registers_to_generate}":{"get":{"tags":["statement"],"summary":"Generate Random Statements","operationId":"generate_random_statements_generate_random_statement__registers_to_generate__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"registers_to_generate","in":"path","required":true,"schema":{"type":"integer","title":"Registers To Generate"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/statements/":{"get":{"tags":["statement"],"summary":"List Statements","operationId":"list_statements_statements__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/balance/":{"get":{"tags":["balance"],"summary":"Get Calculated Balance","description":"This route returns the calculated balance of all transactions for a user.\n    \n    - Rule for **Deposit**: If the user deposits from_user == to_user, the amount is added to the balance.\n    - Rule for **Deposit**: If the user deposits from_user != to_user, the amount is added to the balance.\n    - Rule for **Withdrawal**: If the user withdraws from their own account, the amount is subtracted from the balance.\n    - Rule for **Transfer**: If the user transfers to their own account (to_user == from_user), the amount is added to the balance.\n    - Rule for **Transfer**: If the user transfers to another account (to_user != from_user), the amount is subtracted from the balance.","operationId":"get_calculated_balance_balance__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Balance"}}}}},"security":[{"HTTPBearer":[]}]}},"/contact/":{"post":{"tags":["contact"],"summary":"Create Contact","operationId":"create_contact_contact__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Balance":{"properties":{"amount":{"type":"number","title":"Amount"}},"type":"object","required":["amount"],"title":"Balance"},"Contact":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","format":"email","title":"Email"},"message":{"type":"string","title":"Message"},"interest":{"type":"string","title":"Interest"}},"type":"object","required":["name","email","message","interest"],"title":"Contact"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"StatementCreate":{"properties":{"id":{"type":"integer","title":"Id"},"description":{"type":"string","title":"Description"},"type":{"type":"string","title":"Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"amount":{"type":"string","title":"Amount"},"to_user":{"type":"string","title":"To User"},"from_user":{"type":"string","title":"From User"},"bank_name":{"type":"string","title":"Bank Name"},"authentication":{"type":"string","title":"Authentication"}},"type":"object","required":["id","description","type","created_at","amount","to_user","from_user","bank_name","authentication"],"title":"StatementCreate"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"}},"type":"object","required":["access_token","token_type"],"title":"Token"},"UserCreate":{"properties":{"userid":{"type":"string","format":"email","title":"Userid"},"password":{"type":"string","title":"Password"},"fullname":{"type":"string","title":"Fullname"},"birthdate":{"type":"string","format":"date","title":"Birthdate"}},"type":"object","required":["userid","password","fullname","birthdate"],"title":"UserCreate"},"UserEdit":{"properties":{"password":{"type":"string","title":"Password"},"fullname":{"type":"string","title":"Fullname"},"birthdate":{"type":"string","format":"date","title":"Birthdate"}},"type":"object","title":"UserEdit"},"UserLogin":{"properties":{"userid":{"type":"string","title":"Userid"},"password":{"type":"string","title":"Password"}},"type":"object","required":["userid","password"],"title":"UserLogin"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}