api-1 | INFO: Started server process [1] api-1 | INFO: Waiting for application startup. api-1 | DEBUG: STARTUP MAIN.PY. STRIPE_KEY_LEN=107 api-1 | Accessing Redis at redis://redis:6379/0 api-1 | DEBUG: Creating Tables... api-1 | 2026-01-26 13:06:28,496 INFO sqlalchemy.engine.Engine select pg_catalog.version() api-1 | 2026-01-26 13:06:28,496 INFO sqlalchemy.engine.Engine [raw sql] () api-1 | INFO:sqlalchemy.engine.Engine:select pg_catalog.version() api-1 | INFO:sqlalchemy.engine.Engine:[raw sql] () api-1 | INFO:sqlalchemy.engine.Engine:select current_schema() api-1 | INFO:sqlalchemy.engine.Engine:[raw sql] () api-1 | 2026-01-26 13:06:28,498 INFO sqlalchemy.engine.Engine select current_schema() api-1 | 2026-01-26 13:06:28,498 INFO sqlalchemy.engine.Engine [raw sql] () api-1 | 2026-01-26 13:06:28,498 INFO sqlalchemy.engine.Engine show standard_conforming_strings api-1 | 2026-01-26 13:06:28,498 INFO sqlalchemy.engine.Engine [raw sql] () api-1 | INFO:sqlalchemy.engine.Engine:show standard_conforming_strings api-1 | INFO:sqlalchemy.engine.Engine:[raw sql] () api-1 | 2026-01-26 13:06:28,499 INFO sqlalchemy.engine.Engine BEGIN (implicit) api-1 | INFO:sqlalchemy.engine.Engine:BEGIN (implicit) api-1 | INFO:sqlalchemy.engine.Engine:SELECT pg_catalog.pg_class.relname api-1 | FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace api-1 | WHERE pg_catalog.pg_class.relname = $1::VARCHAR AND pg_catalog.pg_class.relkind = ANY (ARRAY[$2::VARCHAR, $3::VARCHAR, $4::VARCHAR, $5::VARCHAR, $6::VARCHAR]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != $7::VARCHAR api-1 | 2026-01-26 13:06:28,502 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname api-1 | FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace api-1 | WHERE pg_catalog.pg_class.relname = $1::VARCHAR AND pg_catalog.pg_class.relkind = ANY (ARRAY[$2::VARCHAR, $3::VARCHAR, $4::VARCHAR, $5::VARCHAR, $6::VARCHAR]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != $7::VARCHAR api-1 | 2026-01-26 13:06:28,502 INFO sqlalchemy.engine.Engine [generated in 0.00015s] ('products', 'r', 'p', 'f', 'v', 'm', 'pg_catalog') api-1 | INFO:sqlalchemy.engine.Engine:[generated in 0.00015s] ('products', 'r', 'p', 'f', 'v', 'm', 'pg_catalog') api-1 | 2026-01-26 13:06:28,506 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname api-1 | FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace api-1 | WHERE pg_catalog.pg_class.relname = $1::VARCHAR AND pg_catalog.pg_class.relkind = ANY (ARRAY[$2::VARCHAR, $3::VARCHAR, $4::VARCHAR, $5::VARCHAR, $6::VARCHAR]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != $7::VARCHAR api-1 | INFO:sqlalchemy.engine.Engine:SELECT pg_catalog.pg_class.relname api-1 | FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace api-1 | WHERE pg_catalog.pg_class.relname = $1::VARCHAR AND pg_catalog.pg_class.relkind = ANY (ARRAY[$2::VARCHAR, $3::VARCHAR, $4::VARCHAR, $5::VARCHAR, $6::VARCHAR]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != $7::VARCHAR api-1 | 2026-01-26 13:06:28,507 INFO sqlalchemy.engine.Engine [cached since 0.004256s ago] ('orders', 'r', 'p', 'f', 'v', 'm', 'pg_catalog') api-1 | INFO:sqlalchemy.engine.Engine:[cached since 0.004256s ago] ('orders', 'r', 'p', 'f', 'v', 'm', 'pg_catalog') api-1 | INFO:sqlalchemy.engine.Engine:COMMIT api-1 | 2026-01-26 13:06:28,507 INFO sqlalchemy.engine.Engine COMMIT api-1 | INFO:sqlalchemy.engine.Engine:BEGIN (implicit) api-1 | 2026-01-26 13:06:28,508 INFO sqlalchemy.engine.Engine BEGIN (implicit) api-1 | 2026-01-26 13:06:28,509 INFO sqlalchemy.engine.Engine SELECT products.id, products.name, products.price, products.category, products.stock, products.image_url api-1 | FROM products api-1 | INFO:sqlalchemy.engine.Engine:SELECT products.id, products.name, products.price, products.category, products.stock, products.image_url api-1 | FROM products api-1 | INFO:sqlalchemy.engine.Engine:[generated in 0.00009s] () api-1 | 2026-01-26 13:06:28,509 INFO sqlalchemy.engine.Engine [generated in 0.00009s] () api-1 | 2026-01-26 13:06:28,511 INFO sqlalchemy.engine.Engine ROLLBACK api-1 | INFO:sqlalchemy.engine.Engine:ROLLBACK api-1 | INFO: Application startup complete. api-1 | INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) api-1 | INFO:api:GET /api/v1/health? api-1 | DEBUG: Startup Complete. api-1 | INFO: 127.0.0.1:54362 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:56520 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:38564 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:49564 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:38706 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:57912 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:53594 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:51032 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:38502 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:57250 - "GET /api/v1/health HTTP/1.1" 200 OK api-1 | INFO:api:GET /api/v1/health? api-1 | INFO: 127.0.0.1:58586 - "GET /api/v1/health HTTP/1.1" 200 OK