2026-09-16 23:54:07,085 INFO sqlalchemy.engine.Engine select pg_catalog.version()
2026-09-16 23:54:07,086 INFO sqlalchemy.engine.Engine [raw sql] {}
2026-09-16 23:54:07,093 INFO sqlalchemy.engine.Engine select current_schema()
2026-09-16 23:54:07,093 INFO sqlalchemy.engine.Engine [raw sql] {}
2026-09-16 23:54:07,098 INFO sqlalchemy.engine.Engine show standard_conforming_strings
2026-09-16 23:54:07,099 INFO sqlalchemy.engine.Engine [raw sql] {}
2026-09-16 23:54:07,101 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:54:07,113 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,114 INFO sqlalchemy.engine.Engine [generated in 0.00117s] {'table_name': 'roles', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,129 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,130 INFO sqlalchemy.engine.Engine [cached since 0.01694s ago] {'table_name': 'permissions', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,132 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,133 INFO sqlalchemy.engine.Engine [cached since 0.01971s ago] {'table_name': 'user_roles', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,135 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,136 INFO sqlalchemy.engine.Engine [cached since 0.02288s ago] {'table_name': 'role_permissions', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,138 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,138 INFO sqlalchemy.engine.Engine [cached since 0.02565s ago] {'table_name': 'users', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,140 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,141 INFO sqlalchemy.engine.Engine [cached since 0.02822s ago] {'table_name': 'plant_categories', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,143 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,143 INFO sqlalchemy.engine.Engine [cached since 0.03069s ago] {'table_name': 'plant_varieties', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,146 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,147 INFO sqlalchemy.engine.Engine [cached since 0.03413s ago] {'table_name': 'plants', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,149 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,150 INFO sqlalchemy.engine.Engine [cached since 0.03676s ago] {'table_name': 'seed_lots', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,152 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,152 INFO sqlalchemy.engine.Engine [cached since 0.03935s ago] {'table_name': 'production_batches', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,154 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,155 INFO sqlalchemy.engine.Engine [cached since 0.04197s ago] {'table_name': 'germination_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,157 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,157 INFO sqlalchemy.engine.Engine [cached since 0.04458s ago] {'table_name': 'transplant_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,159 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,160 INFO sqlalchemy.engine.Engine [cached since 0.0471s ago] {'table_name': 'inventory', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,162 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,163 INFO sqlalchemy.engine.Engine [cached since 0.04997s ago] {'table_name': 'inventory_transactions', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,165 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,165 INFO sqlalchemy.engine.Engine [cached since 0.05244s ago] {'table_name': 'suppliers', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,167 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,168 INFO sqlalchemy.engine.Engine [cached since 0.05516s ago] {'table_name': 'purchase_requests', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,170 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,171 INFO sqlalchemy.engine.Engine [cached since 0.05781s ago] {'table_name': 'purchase_orders', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,173 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,173 INFO sqlalchemy.engine.Engine [cached since 0.06056s ago] {'table_name': 'purchase_items', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,175 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,176 INFO sqlalchemy.engine.Engine [cached since 0.06303s ago] {'table_name': 'grn', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,178 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,179 INFO sqlalchemy.engine.Engine [cached since 0.06602s ago] {'table_name': 'customers', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,181 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,182 INFO sqlalchemy.engine.Engine [cached since 0.06887s ago] {'table_name': 'sales', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,183 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,184 INFO sqlalchemy.engine.Engine [cached since 0.07157s ago] {'table_name': 'sale_items', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,186 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,187 INFO sqlalchemy.engine.Engine [cached since 0.07443s ago] {'table_name': 'quotations', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,189 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,190 INFO sqlalchemy.engine.Engine [cached since 0.07704s ago] {'table_name': 'quotation_items', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,192 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,193 INFO sqlalchemy.engine.Engine [cached since 0.08001s ago] {'table_name': 'employees', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,195 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,196 INFO sqlalchemy.engine.Engine [cached since 0.08287s ago] {'table_name': 'attendance', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,198 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,199 INFO sqlalchemy.engine.Engine [cached since 0.08584s ago] {'table_name': 'leaves', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,201 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,202 INFO sqlalchemy.engine.Engine [cached since 0.08866s ago] {'table_name': 'accounts', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,204 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,204 INFO sqlalchemy.engine.Engine [cached since 0.09163s ago] {'table_name': 'expenses', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,206 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,207 INFO sqlalchemy.engine.Engine [cached since 0.09423s ago] {'table_name': 'income', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,209 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,210 INFO sqlalchemy.engine.Engine [cached since 0.097s ago] {'table_name': 'payments', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,213 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,213 INFO sqlalchemy.engine.Engine [cached since 0.1005s ago] {'table_name': 'journal_entries', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,215 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,216 INFO sqlalchemy.engine.Engine [cached since 0.1033s ago] {'table_name': 'notifications', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,218 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,219 INFO sqlalchemy.engine.Engine [cached since 0.1057s ago] {'table_name': 'alerts', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,221 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,221 INFO sqlalchemy.engine.Engine [cached since 0.1085s ago] {'table_name': 'warehouses', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,223 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,224 INFO sqlalchemy.engine.Engine [cached since 0.1109s ago] {'table_name': 'stock_transfers', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,226 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,226 INFO sqlalchemy.engine.Engine [cached since 0.1133s ago] {'table_name': 'audit_logs', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,228 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,229 INFO sqlalchemy.engine.Engine [cached since 0.1161s ago] {'table_name': 'treatments', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,231 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,232 INFO sqlalchemy.engine.Engine [cached since 0.1188s ago] {'table_name': 'treatment_details', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,233 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,234 INFO sqlalchemy.engine.Engine [cached since 0.1212s ago] {'table_name': 'health_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,236 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,236 INFO sqlalchemy.engine.Engine [cached since 0.1235s ago] {'table_name': 'disease_pest_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,238 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,239 INFO sqlalchemy.engine.Engine [cached since 0.1261s ago] {'table_name': 'treatment_schedules', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,241 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,242 INFO sqlalchemy.engine.Engine [cached since 0.1289s ago] {'table_name': 'branches', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,244 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,245 INFO sqlalchemy.engine.Engine [cached since 0.1318s ago] {'table_name': 'plant_passports', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,247 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,248 INFO sqlalchemy.engine.Engine [cached since 0.135s ago] {'table_name': 'passport_timeline_events', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,250 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,251 INFO sqlalchemy.engine.Engine [cached since 0.1383s ago] {'table_name': 'passport_photos', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,253 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,254 INFO sqlalchemy.engine.Engine [cached since 0.1409s ago] {'table_name': 'passport_scan_logs', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,256 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,256 INFO sqlalchemy.engine.Engine [cached since 0.1435s ago] {'table_name': 'passport_customer_views', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,258 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,259 INFO sqlalchemy.engine.Engine [cached since 0.146s ago] {'table_name': 'farmer_profiles', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,261 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,263 INFO sqlalchemy.engine.Engine [cached since 0.1497s ago] {'table_name': 'farms', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,265 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,265 INFO sqlalchemy.engine.Engine [cached since 0.1524s ago] {'table_name': 'farm_fields', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,267 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,268 INFO sqlalchemy.engine.Engine [cached since 0.155s ago] {'table_name': 'plant_activations', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,270 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,271 INFO sqlalchemy.engine.Engine [cached since 0.1577s ago] {'table_name': 'plant_ownership_history', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,273 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,273 INFO sqlalchemy.engine.Engine [cached since 0.1604s ago] {'table_name': 'plant_cost_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,275 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,275 INFO sqlalchemy.engine.Engine [cached since 0.1627s ago] {'table_name': 'plant_growth_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,278 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,278 INFO sqlalchemy.engine.Engine [cached since 0.1656s ago] {'table_name': 'plant_treatment_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,281 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,281 INFO sqlalchemy.engine.Engine [cached since 0.1686s ago] {'table_name': 'plant_health_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,284 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,284 INFO sqlalchemy.engine.Engine [cached since 0.1715s ago] {'table_name': 'plant_harvest_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,287 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,287 INFO sqlalchemy.engine.Engine [cached since 0.1744s ago] {'table_name': 'plant_care_records', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,289 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,290 INFO sqlalchemy.engine.Engine [cached since 0.1768s ago] {'table_name': 'plant_care_schedules', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,291 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,292 INFO sqlalchemy.engine.Engine [cached since 0.1792s ago] {'table_name': 'plant_issue_reports', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,294 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,295 INFO sqlalchemy.engine.Engine [cached since 0.1821s ago] {'table_name': 'plant_warranty_claims', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,297 INFO sqlalchemy.engine.Engine SELECT pg_catalog.pg_class.relname 
FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON pg_catalog.pg_namespace.oid = pg_catalog.pg_class.relnamespace 
WHERE pg_catalog.pg_class.relname = %(table_name)s AND pg_catalog.pg_class.relkind = ANY (ARRAY[%(param_1)s, %(param_2)s, %(param_3)s, %(param_4)s, %(param_5)s]) AND pg_catalog.pg_table_is_visible(pg_catalog.pg_class.oid) AND pg_catalog.pg_namespace.nspname != %(nspname_1)s
2026-09-16 23:54:07,298 INFO sqlalchemy.engine.Engine [cached since 0.185s ago] {'table_name': 'farmer_support_tickets', 'param_1': 'r', 'param_2': 'p', 'param_3': 'f', 'param_4': 'v', 'param_5': 'm', 'nspname_1': 'pg_catalog'}
2026-09-16 23:54:07,300 INFO sqlalchemy.engine.Engine COMMIT
2026-09-16 23:54:07,814 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:54:07,824 INFO sqlalchemy.engine.Engine SELECT count(*) AS count_1 
FROM (SELECT roles.id AS roles_id, roles.name AS roles_name, roles.description AS roles_description, roles.created_at AS roles_created_at 
FROM roles) AS anon_1
2026-09-16 23:54:07,825 INFO sqlalchemy.engine.Engine [generated in 0.00069s] {}
2026-09-16 23:54:07,846 INFO sqlalchemy.engine.Engine SELECT count(*) AS count_1 
FROM (SELECT branches.id AS branches_id, branches.code AS branches_code, branches.name AS branches_name, branches.address AS branches_address, branches.city AS branches_city, branches.phone AS branches_phone, branches.manager_name AS branches_manager_name, branches.latitude AS branches_latitude, branches.longitude AS branches_longitude, branches.is_active AS branches_is_active, branches.created_at AS branches_created_at, branches.updated_at AS branches_updated_at 
FROM branches) AS anon_1
2026-09-16 23:54:07,847 INFO sqlalchemy.engine.Engine [generated in 0.00079s] {}
2026-09-16 23:54:07,862 INFO sqlalchemy.engine.Engine SELECT count(*) AS count_1 
FROM (SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users) AS anon_1
2026-09-16 23:54:07,863 INFO sqlalchemy.engine.Engine [generated in 0.00092s] {}
2026-09-16 23:54:07,873 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60105 - "GET /docs HTTP/1.1" 200 OK
INFO:     127.0.0.1:60126 - "GET /api/auth/me HTTP/1.1" 401 Unauthorized
INFO:     127.0.0.1:60128 - "GET /api/auth/me HTTP/1.1" 401 Unauthorized
INFO:     127.0.0.1:60133 - "GET /api/weather?city=dhaka HTTP/1.1" 200 OK
2026-09-16 23:57:00,581 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:00,586 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.username = %(username_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:00,587 INFO sqlalchemy.engine.Engine [generated in 0.00096s] {'username_1': 'admin', 'param_1': 1}
2026-09-16 23:57:00,971 INFO sqlalchemy.engine.Engine SELECT roles.id AS roles_id, roles.name AS roles_name, roles.description AS roles_description, roles.created_at AS roles_created_at 
FROM roles, user_roles 
WHERE %(param_1)s = user_roles.user_id AND roles.id = user_roles.role_id
2026-09-16 23:57:00,975 INFO sqlalchemy.engine.Engine [generated in 0.00425s] {'param_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8'}
2026-09-16 23:57:00,987 INFO sqlalchemy.engine.Engine SELECT permissions.id AS permissions_id, permissions.module AS permissions_module, permissions.action AS permissions_action, permissions.created_at AS permissions_created_at 
FROM permissions, role_permissions 
WHERE %(param_1)s = role_permissions.role_id AND permissions.id = role_permissions.permission_id
2026-09-16 23:57:00,988 INFO sqlalchemy.engine.Engine [generated in 0.00053s] {'param_1': 'c6382ef6-2259-4f0b-a23b-e9bfe4f3e959'}
2026-09-16 23:57:01,002 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60141 - "POST /api/auth/login HTTP/1.1" 200 OK
INFO:     127.0.0.1:60138 - "GET /api/weather?city=dhaka HTTP/1.1" 200 OK
2026-09-16 23:57:01,339 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:01,346 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:01,348 INFO sqlalchemy.engine.Engine [generated in 0.00193s] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:01,355 INFO sqlalchemy.engine.Engine SELECT count(notifications.id) AS count_1 
FROM notifications 
WHERE notifications.user_id = %(user_id_1)s AND notifications.is_read = false
2026-09-16 23:57:01,356 INFO sqlalchemy.engine.Engine [generated in 0.00072s] {'user_id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8'}
2026-09-16 23:57:01,512 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60144 - "GET /api/alerts/notifications/unread-count HTTP/1.1" 200 OK
2026-09-16 23:57:01,524 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:01,525 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:01,526 INFO sqlalchemy.engine.Engine [cached since 0.18s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:01,525 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:01,527 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:01,528 INFO sqlalchemy.engine.Engine [cached since 0.1822s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:01,544 INFO sqlalchemy.engine.Engine SELECT count(plants.id) AS count_1 
FROM plants 
WHERE plants.is_active = true
2026-09-16 23:57:01,545 INFO sqlalchemy.engine.Engine [generated in 0.00108s] {}
2026-09-16 23:57:01,551 INFO sqlalchemy.engine.Engine SELECT branches.id AS branches_id, branches.code AS branches_code, branches.name AS branches_name, branches.address AS branches_address, branches.city AS branches_city, branches.phone AS branches_phone, branches.manager_name AS branches_manager_name, branches.latitude AS branches_latitude, branches.longitude AS branches_longitude, branches.is_active AS branches_is_active, branches.created_at AS branches_created_at, branches.updated_at AS branches_updated_at 
FROM branches ORDER BY branches.name
2026-09-16 23:57:01,552 INFO sqlalchemy.engine.Engine [generated in 0.00108s] {}
2026-09-16 23:57:01,658 INFO sqlalchemy.engine.Engine SELECT count(production_batches.id) AS count_1 
FROM production_batches 
WHERE (production_batches.status NOT IN (%(status_1_1)s, %(status_1_2)s))
2026-09-16 23:57:01,659 INFO sqlalchemy.engine.Engine [generated in 0.00090s] {'status_1_1': 'completed', 'status_1_2': 'sold'}
2026-09-16 23:57:01,666 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60147 - "GET /api/branches HTTP/1.1" 200 OK
2026-09-16 23:57:01,745 INFO sqlalchemy.engine.Engine SELECT count(production_batches.id) AS count_1 
FROM production_batches 
WHERE production_batches.status = %(status_1)s
2026-09-16 23:57:01,746 INFO sqlalchemy.engine.Engine [generated in 0.00086s] {'status_1': 'ready'}
2026-09-16 23:57:01,751 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(sales.total), %(coalesce_2)s) AS coalesce_1 
FROM sales 
WHERE sales.date = %(date_1)s
2026-09-16 23:57:01,752 INFO sqlalchemy.engine.Engine [generated in 0.00083s] {'coalesce_2': 0, 'date_1': datetime.date(2026, 9, 16)}
2026-09-16 23:57:01,818 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:01,820 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:01,822 INFO sqlalchemy.engine.Engine [cached since 0.4757s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:01,826 INFO sqlalchemy.engine.Engine SELECT count(notifications.id) AS count_1 
FROM notifications 
WHERE notifications.user_id = %(user_id_1)s AND notifications.is_read = false
2026-09-16 23:57:01,826 INFO sqlalchemy.engine.Engine [cached since 0.4713s ago] {'user_id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8'}
2026-09-16 23:57:01,829 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60153 - "GET /api/alerts/notifications/unread-count HTTP/1.1" 200 OK
2026-09-16 23:57:01,888 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(sales.total), %(coalesce_2)s) AS coalesce_1 
FROM sales 
WHERE sales.date >= %(date_1)s
2026-09-16 23:57:01,889 INFO sqlalchemy.engine.Engine [generated in 0.00176s] {'coalesce_2': 0, 'date_1': datetime.date(2026, 9, 1)}
2026-09-16 23:57:01,895 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(sales.total), %(coalesce_2)s) AS coalesce_1 
FROM sales
2026-09-16 23:57:01,896 INFO sqlalchemy.engine.Engine [generated in 0.00103s] {'coalesce_2': 0}
2026-09-16 23:57:01,902 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(expenses.amount), %(coalesce_2)s) AS coalesce_1 
FROM expenses 
WHERE expenses.date = %(date_1)s
2026-09-16 23:57:01,903 INFO sqlalchemy.engine.Engine [generated in 0.00076s] {'coalesce_2': 0, 'date_1': datetime.date(2026, 9, 16)}
2026-09-16 23:57:01,915 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(expenses.amount), %(coalesce_2)s) AS coalesce_1 
FROM expenses 
WHERE expenses.date >= %(date_1)s
2026-09-16 23:57:01,916 INFO sqlalchemy.engine.Engine [generated in 0.00127s] {'coalesce_2': 0, 'date_1': datetime.date(2026, 9, 1)}
2026-09-16 23:57:01,919 INFO sqlalchemy.engine.Engine SELECT count(inventory.id) AS count_1 
FROM inventory 
WHERE inventory.quantity <= inventory.min_quantity
2026-09-16 23:57:01,920 INFO sqlalchemy.engine.Engine [generated in 0.00083s] {}
2026-09-16 23:57:01,923 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:01,924 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:01,925 INFO sqlalchemy.engine.Engine [cached since 0.5788s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:01,928 INFO sqlalchemy.engine.Engine SELECT branches.id AS branches_id, branches.code AS branches_code, branches.name AS branches_name, branches.address AS branches_address, branches.city AS branches_city, branches.phone AS branches_phone, branches.manager_name AS branches_manager_name, branches.latitude AS branches_latitude, branches.longitude AS branches_longitude, branches.is_active AS branches_is_active, branches.created_at AS branches_created_at, branches.updated_at AS branches_updated_at 
FROM branches ORDER BY branches.name
2026-09-16 23:57:01,928 INFO sqlalchemy.engine.Engine [cached since 0.378s ago] {}
2026-09-16 23:57:01,932 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60156 - "GET /api/branches HTTP/1.1" 200 OK
2026-09-16 23:57:02,013 INFO sqlalchemy.engine.Engine SELECT count(customers.id) AS count_1 
FROM customers
2026-09-16 23:57:02,014 INFO sqlalchemy.engine.Engine [generated in 0.00079s] {}
2026-09-16 23:57:02,028 INFO sqlalchemy.engine.Engine SELECT count(suppliers.id) AS count_1 
FROM suppliers
2026-09-16 23:57:02,028 INFO sqlalchemy.engine.Engine [generated in 0.00070s] {}
2026-09-16 23:57:02,038 INFO sqlalchemy.engine.Engine SELECT count(employees.id) AS count_1 
FROM employees 
WHERE employees.is_active = true
2026-09-16 23:57:02,039 INFO sqlalchemy.engine.Engine [generated in 0.00069s] {}
2026-09-16 23:57:02,049 INFO sqlalchemy.engine.Engine SELECT count(alerts.id) AS count_1 
FROM alerts 
WHERE alerts.is_resolved = false
2026-09-16 23:57:02,050 INFO sqlalchemy.engine.Engine [generated in 0.00088s] {}
2026-09-16 23:57:02,068 INFO sqlalchemy.engine.Engine SELECT sales.id AS sales_id, sales.invoice_number AS sales_invoice_number, sales.customer_id AS sales_customer_id, sales.sale_type AS sales_sale_type, sales.date AS sales_date, sales.subtotal AS sales_subtotal, sales.discount AS sales_discount, sales.tax AS sales_tax, sales.total AS sales_total, sales.paid AS sales_paid, sales.due AS sales_due, sales.status AS sales_status, sales.payment_method AS sales_payment_method, sales.notes AS sales_notes, sales.created_by AS sales_created_by, sales.created_at AS sales_created_at 
FROM sales ORDER BY sales.created_at DESC 
 LIMIT %(param_1)s
2026-09-16 23:57:02,071 INFO sqlalchemy.engine.Engine [generated in 0.00329s] {'param_1': 5}
2026-09-16 23:57:02,083 INFO sqlalchemy.engine.Engine SELECT plants.name AS plants_name, sum(sale_items.quantity) AS total_sold 
FROM plants JOIN sale_items ON sale_items.plant_id = plants.id GROUP BY plants.name ORDER BY sum(sale_items.quantity) DESC 
 LIMIT %(param_1)s
2026-09-16 23:57:02,084 INFO sqlalchemy.engine.Engine [generated in 0.00090s] {'param_1': 5}
2026-09-16 23:57:02,103 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60145 - "GET /api/dashboard HTTP/1.1" 200 OK
2026-09-16 23:57:02,126 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:02,127 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:02,128 INFO sqlalchemy.engine.Engine [cached since 0.782s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:02,132 INFO sqlalchemy.engine.Engine SELECT count(plants.id) AS count_1 
FROM plants 
WHERE plants.is_active = true
2026-09-16 23:57:02,132 INFO sqlalchemy.engine.Engine [cached since 0.5885s ago] {}
2026-09-16 23:57:02,142 INFO sqlalchemy.engine.Engine SELECT count(production_batches.id) AS count_1 
FROM production_batches 
WHERE (production_batches.status NOT IN (%(status_1_1)s, %(status_1_2)s))
2026-09-16 23:57:02,142 INFO sqlalchemy.engine.Engine [cached since 0.4842s ago] {'status_1_1': 'completed', 'status_1_2': 'sold'}
2026-09-16 23:57:02,150 INFO sqlalchemy.engine.Engine SELECT count(production_batches.id) AS count_1 
FROM production_batches 
WHERE production_batches.status = %(status_1)s
2026-09-16 23:57:02,151 INFO sqlalchemy.engine.Engine [cached since 0.4063s ago] {'status_1': 'ready'}
2026-09-16 23:57:02,154 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(sales.total), %(coalesce_2)s) AS coalesce_1 
FROM sales 
WHERE sales.date = %(date_1)s
2026-09-16 23:57:02,155 INFO sqlalchemy.engine.Engine [cached since 0.4037s ago] {'coalesce_2': 0, 'date_1': datetime.date(2026, 9, 16)}
2026-09-16 23:57:02,164 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(sales.total), %(coalesce_2)s) AS coalesce_1 
FROM sales 
WHERE sales.date >= %(date_1)s
2026-09-16 23:57:02,165 INFO sqlalchemy.engine.Engine [cached since 0.2775s ago] {'coalesce_2': 0, 'date_1': datetime.date(2026, 9, 1)}
2026-09-16 23:57:02,168 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(sales.total), %(coalesce_2)s) AS coalesce_1 
FROM sales
2026-09-16 23:57:02,169 INFO sqlalchemy.engine.Engine [cached since 0.2739s ago] {'coalesce_2': 0}
2026-09-16 23:57:02,173 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(expenses.amount), %(coalesce_2)s) AS coalesce_1 
FROM expenses 
WHERE expenses.date = %(date_1)s
2026-09-16 23:57:02,173 INFO sqlalchemy.engine.Engine [cached since 0.2714s ago] {'coalesce_2': 0, 'date_1': datetime.date(2026, 9, 16)}
2026-09-16 23:57:02,179 INFO sqlalchemy.engine.Engine SELECT coalesce(sum(expenses.amount), %(coalesce_2)s) AS coalesce_1 
FROM expenses 
WHERE expenses.date >= %(date_1)s
2026-09-16 23:57:02,180 INFO sqlalchemy.engine.Engine [cached since 0.2656s ago] {'coalesce_2': 0, 'date_1': datetime.date(2026, 9, 1)}
2026-09-16 23:57:02,183 INFO sqlalchemy.engine.Engine SELECT count(inventory.id) AS count_1 
FROM inventory 
WHERE inventory.quantity <= inventory.min_quantity
2026-09-16 23:57:02,184 INFO sqlalchemy.engine.Engine [cached since 0.2645s ago] {}
2026-09-16 23:57:02,193 INFO sqlalchemy.engine.Engine SELECT count(customers.id) AS count_1 
FROM customers
2026-09-16 23:57:02,193 INFO sqlalchemy.engine.Engine [cached since 0.1805s ago] {}
2026-09-16 23:57:02,200 INFO sqlalchemy.engine.Engine SELECT count(suppliers.id) AS count_1 
FROM suppliers
2026-09-16 23:57:02,202 INFO sqlalchemy.engine.Engine [cached since 0.1736s ago] {}
2026-09-16 23:57:02,209 INFO sqlalchemy.engine.Engine SELECT count(employees.id) AS count_1 
FROM employees 
WHERE employees.is_active = true
2026-09-16 23:57:02,209 INFO sqlalchemy.engine.Engine [cached since 0.1713s ago] {}
2026-09-16 23:57:02,215 INFO sqlalchemy.engine.Engine SELECT count(alerts.id) AS count_1 
FROM alerts 
WHERE alerts.is_resolved = false
2026-09-16 23:57:02,216 INFO sqlalchemy.engine.Engine [cached since 0.1662s ago] {}
2026-09-16 23:57:02,221 INFO sqlalchemy.engine.Engine SELECT sales.id AS sales_id, sales.invoice_number AS sales_invoice_number, sales.customer_id AS sales_customer_id, sales.sale_type AS sales_sale_type, sales.date AS sales_date, sales.subtotal AS sales_subtotal, sales.discount AS sales_discount, sales.tax AS sales_tax, sales.total AS sales_total, sales.paid AS sales_paid, sales.due AS sales_due, sales.status AS sales_status, sales.payment_method AS sales_payment_method, sales.notes AS sales_notes, sales.created_by AS sales_created_by, sales.created_at AS sales_created_at 
FROM sales ORDER BY sales.created_at DESC 
 LIMIT %(param_1)s
2026-09-16 23:57:02,222 INFO sqlalchemy.engine.Engine [cached since 0.1537s ago] {'param_1': 5}
2026-09-16 23:57:02,225 INFO sqlalchemy.engine.Engine SELECT plants.name AS plants_name, sum(sale_items.quantity) AS total_sold 
FROM plants JOIN sale_items ON sale_items.plant_id = plants.id GROUP BY plants.name ORDER BY sum(sale_items.quantity) DESC 
 LIMIT %(param_1)s
2026-09-16 23:57:02,225 INFO sqlalchemy.engine.Engine [cached since 0.1421s ago] {'param_1': 5}
2026-09-16 23:57:02,233 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60159 - "GET /api/dashboard HTTP/1.1" 200 OK
INFO:     127.0.0.1:60162 - "GET /api/weather?city=dhaka HTTP/1.1" 200 OK
INFO:     127.0.0.1:60167 - "GET /api/weather?city=dhaka HTTP/1.1" 200 OK
2026-09-16 23:57:16,206 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:16,208 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,209 INFO sqlalchemy.engine.Engine [cached since 14.86s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:16,222 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:16,223 INFO sqlalchemy.engine.Engine [generated in 0.00075s] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:16,259 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,260 INFO sqlalchemy.engine.Engine [generated in 0.00123s] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:16,288 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,288 INFO sqlalchemy.engine.Engine [generated in 0.00073s] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:16,317 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:16,318 INFO sqlalchemy.engine.Engine [generated in 0.00087s] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:16,331 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,333 INFO sqlalchemy.engine.Engine [generated in 0.00232s] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:16,346 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,347 INFO sqlalchemy.engine.Engine [cached since 0.0883s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:16,351 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,351 INFO sqlalchemy.engine.Engine [cached since 0.06393s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:16,354 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,355 INFO sqlalchemy.engine.Engine [cached since 0.02392s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:16,361 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60172 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:16,380 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:16,383 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,384 INFO sqlalchemy.engine.Engine [cached since 15.04s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:16,388 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:16,392 INFO sqlalchemy.engine.Engine [cached since 0.1697s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:16,397 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:16,402 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,402 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,404 INFO sqlalchemy.engine.Engine [cached since 0.1456s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:16,403 INFO sqlalchemy.engine.Engine [cached since 15.06s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:16,414 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,419 INFO sqlalchemy.engine.Engine [generated in 0.00572s] {'id_1': 'c92682ad-3c28-41d3-a512-1ebe5b33bab5', 'param_1': 1}
2026-09-16 23:57:16,419 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,421 INFO sqlalchemy.engine.Engine [cached since 0.1335s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:16,442 INFO sqlalchemy.engine.Engine SELECT plant_cost_records.id AS plant_cost_records_id, plant_cost_records.activation_id AS plant_cost_records_activation_id, plant_cost_records.cost_type AS plant_cost_records_cost_type, plant_cost_records.amount AS plant_cost_records_amount, plant_cost_records.description AS plant_cost_records_description, plant_cost_records.date AS plant_cost_records_date, plant_cost_records.reference_type AS plant_cost_records_reference_type, plant_cost_records.reference_id AS plant_cost_records_reference_id, plant_cost_records.notes AS plant_cost_records_notes, plant_cost_records.created_at AS plant_cost_records_created_at 
FROM plant_cost_records 
WHERE plant_cost_records.activation_id = %(activation_id_1)s
2026-09-16 23:57:16,444 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:16,447 INFO sqlalchemy.engine.Engine [cached since 0.1302s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:16,446 INFO sqlalchemy.engine.Engine [generated in 0.00464s] {'activation_id_1': 'c92682ad-3c28-41d3-a512-1ebe5b33bab5'}
2026-09-16 23:57:16,452 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,454 INFO sqlalchemy.engine.Engine [cached since 0.1229s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:16,460 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,461 INFO sqlalchemy.engine.Engine [cached since 0.2021s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:16,464 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,464 INFO sqlalchemy.engine.Engine [cached since 0.1769s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:16,467 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,467 INFO sqlalchemy.engine.Engine [cached since 0.1366s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:16,471 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60175 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:16,495 INFO sqlalchemy.engine.Engine SELECT plant_harvest_records.id AS plant_harvest_records_id, plant_harvest_records.harvest_number AS plant_harvest_records_harvest_number, plant_harvest_records.activation_id AS plant_harvest_records_activation_id, plant_harvest_records.harvest_date AS plant_harvest_records_harvest_date, plant_harvest_records.quantity AS plant_harvest_records_quantity, plant_harvest_records.unit AS plant_harvest_records_unit, plant_harvest_records.grade AS plant_harvest_records_grade, plant_harvest_records.quality AS plant_harvest_records_quality, plant_harvest_records.selling_price AS plant_harvest_records_selling_price, plant_harvest_records.buyer AS plant_harvest_records_buyer, plant_harvest_records.revenue AS plant_harvest_records_revenue, plant_harvest_records.photo_url AS plant_harvest_records_photo_url, plant_harvest_records.notes AS plant_harvest_records_notes, plant_harvest_records.recorded_by AS plant_harvest_records_recorded_by, plant_harvest_records.created_at AS plant_harvest_records_created_at 
FROM plant_harvest_records 
WHERE plant_harvest_records.activation_id = %(activation_id_1)s
2026-09-16 23:57:16,496 INFO sqlalchemy.engine.Engine [generated in 0.00082s] {'activation_id_1': 'c92682ad-3c28-41d3-a512-1ebe5b33bab5'}
2026-09-16 23:57:16,510 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60178 - "GET /api/plant-activations/c92682ad-3c28-41d3-a512-1ebe5b33bab5/roi HTTP/1.1" 200 OK
2026-09-16 23:57:16,527 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:16,528 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,529 INFO sqlalchemy.engine.Engine [cached since 15.18s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:16,534 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,535 INFO sqlalchemy.engine.Engine [cached since 0.1212s ago] {'id_1': 'c92682ad-3c28-41d3-a512-1ebe5b33bab5', 'param_1': 1}
2026-09-16 23:57:16,540 INFO sqlalchemy.engine.Engine SELECT plant_cost_records.id AS plant_cost_records_id, plant_cost_records.activation_id AS plant_cost_records_activation_id, plant_cost_records.cost_type AS plant_cost_records_cost_type, plant_cost_records.amount AS plant_cost_records_amount, plant_cost_records.description AS plant_cost_records_description, plant_cost_records.date AS plant_cost_records_date, plant_cost_records.reference_type AS plant_cost_records_reference_type, plant_cost_records.reference_id AS plant_cost_records_reference_id, plant_cost_records.notes AS plant_cost_records_notes, plant_cost_records.created_at AS plant_cost_records_created_at 
FROM plant_cost_records 
WHERE plant_cost_records.activation_id = %(activation_id_1)s
2026-09-16 23:57:16,541 INFO sqlalchemy.engine.Engine [cached since 0.09898s ago] {'activation_id_1': 'c92682ad-3c28-41d3-a512-1ebe5b33bab5'}
2026-09-16 23:57:16,543 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:16,544 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,546 INFO sqlalchemy.engine.Engine [cached since 15.2s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:16,546 INFO sqlalchemy.engine.Engine SELECT plant_harvest_records.id AS plant_harvest_records_id, plant_harvest_records.harvest_number AS plant_harvest_records_harvest_number, plant_harvest_records.activation_id AS plant_harvest_records_activation_id, plant_harvest_records.harvest_date AS plant_harvest_records_harvest_date, plant_harvest_records.quantity AS plant_harvest_records_quantity, plant_harvest_records.unit AS plant_harvest_records_unit, plant_harvest_records.grade AS plant_harvest_records_grade, plant_harvest_records.quality AS plant_harvest_records_quality, plant_harvest_records.selling_price AS plant_harvest_records_selling_price, plant_harvest_records.buyer AS plant_harvest_records_buyer, plant_harvest_records.revenue AS plant_harvest_records_revenue, plant_harvest_records.photo_url AS plant_harvest_records_photo_url, plant_harvest_records.notes AS plant_harvest_records_notes, plant_harvest_records.recorded_by AS plant_harvest_records_recorded_by, plant_harvest_records.created_at AS plant_harvest_records_created_at 
FROM plant_harvest_records 
WHERE plant_harvest_records.activation_id = %(activation_id_1)s
2026-09-16 23:57:16,547 INFO sqlalchemy.engine.Engine [cached since 0.05206s ago] {'activation_id_1': 'c92682ad-3c28-41d3-a512-1ebe5b33bab5'}
2026-09-16 23:57:16,552 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,553 INFO sqlalchemy.engine.Engine [cached since 0.1394s ago] {'id_1': 'c0565da2-7595-4dbd-8fad-7923b0ce43a8', 'param_1': 1}
2026-09-16 23:57:16,555 INFO sqlalchemy.engine.Engine SELECT plant_cost_records.id AS plant_cost_records_id, plant_cost_records.activation_id AS plant_cost_records_activation_id, plant_cost_records.cost_type AS plant_cost_records_cost_type, plant_cost_records.amount AS plant_cost_records_amount, plant_cost_records.description AS plant_cost_records_description, plant_cost_records.date AS plant_cost_records_date, plant_cost_records.reference_type AS plant_cost_records_reference_type, plant_cost_records.reference_id AS plant_cost_records_reference_id, plant_cost_records.notes AS plant_cost_records_notes, plant_cost_records.created_at AS plant_cost_records_created_at 
FROM plant_cost_records 
WHERE plant_cost_records.activation_id = %(activation_id_1)s
2026-09-16 23:57:16,556 INFO sqlalchemy.engine.Engine [cached since 0.1141s ago] {'activation_id_1': 'c0565da2-7595-4dbd-8fad-7923b0ce43a8'}
2026-09-16 23:57:16,557 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60181 - "GET /api/plant-activations/c92682ad-3c28-41d3-a512-1ebe5b33bab5/roi HTTP/1.1" 200 OK
2026-09-16 23:57:16,561 INFO sqlalchemy.engine.Engine SELECT plant_harvest_records.id AS plant_harvest_records_id, plant_harvest_records.harvest_number AS plant_harvest_records_harvest_number, plant_harvest_records.activation_id AS plant_harvest_records_activation_id, plant_harvest_records.harvest_date AS plant_harvest_records_harvest_date, plant_harvest_records.quantity AS plant_harvest_records_quantity, plant_harvest_records.unit AS plant_harvest_records_unit, plant_harvest_records.grade AS plant_harvest_records_grade, plant_harvest_records.quality AS plant_harvest_records_quality, plant_harvest_records.selling_price AS plant_harvest_records_selling_price, plant_harvest_records.buyer AS plant_harvest_records_buyer, plant_harvest_records.revenue AS plant_harvest_records_revenue, plant_harvest_records.photo_url AS plant_harvest_records_photo_url, plant_harvest_records.notes AS plant_harvest_records_notes, plant_harvest_records.recorded_by AS plant_harvest_records_recorded_by, plant_harvest_records.created_at AS plant_harvest_records_created_at 
FROM plant_harvest_records 
WHERE plant_harvest_records.activation_id = %(activation_id_1)s
2026-09-16 23:57:16,562 INFO sqlalchemy.engine.Engine [cached since 0.06685s ago] {'activation_id_1': 'c0565da2-7595-4dbd-8fad-7923b0ce43a8'}
2026-09-16 23:57:16,572 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60184 - "GET /api/plant-activations/c0565da2-7595-4dbd-8fad-7923b0ce43a8/roi HTTP/1.1" 200 OK
2026-09-16 23:57:16,592 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:16,593 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,594 INFO sqlalchemy.engine.Engine [cached since 15.25s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:16,597 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:16,599 INFO sqlalchemy.engine.Engine [cached since 0.1859s ago] {'id_1': 'c0565da2-7595-4dbd-8fad-7923b0ce43a8', 'param_1': 1}
2026-09-16 23:57:16,602 INFO sqlalchemy.engine.Engine SELECT plant_cost_records.id AS plant_cost_records_id, plant_cost_records.activation_id AS plant_cost_records_activation_id, plant_cost_records.cost_type AS plant_cost_records_cost_type, plant_cost_records.amount AS plant_cost_records_amount, plant_cost_records.description AS plant_cost_records_description, plant_cost_records.date AS plant_cost_records_date, plant_cost_records.reference_type AS plant_cost_records_reference_type, plant_cost_records.reference_id AS plant_cost_records_reference_id, plant_cost_records.notes AS plant_cost_records_notes, plant_cost_records.created_at AS plant_cost_records_created_at 
FROM plant_cost_records 
WHERE plant_cost_records.activation_id = %(activation_id_1)s
2026-09-16 23:57:16,603 INFO sqlalchemy.engine.Engine [cached since 0.1615s ago] {'activation_id_1': 'c0565da2-7595-4dbd-8fad-7923b0ce43a8'}
2026-09-16 23:57:16,605 INFO sqlalchemy.engine.Engine SELECT plant_harvest_records.id AS plant_harvest_records_id, plant_harvest_records.harvest_number AS plant_harvest_records_harvest_number, plant_harvest_records.activation_id AS plant_harvest_records_activation_id, plant_harvest_records.harvest_date AS plant_harvest_records_harvest_date, plant_harvest_records.quantity AS plant_harvest_records_quantity, plant_harvest_records.unit AS plant_harvest_records_unit, plant_harvest_records.grade AS plant_harvest_records_grade, plant_harvest_records.quality AS plant_harvest_records_quality, plant_harvest_records.selling_price AS plant_harvest_records_selling_price, plant_harvest_records.buyer AS plant_harvest_records_buyer, plant_harvest_records.revenue AS plant_harvest_records_revenue, plant_harvest_records.photo_url AS plant_harvest_records_photo_url, plant_harvest_records.notes AS plant_harvest_records_notes, plant_harvest_records.recorded_by AS plant_harvest_records_recorded_by, plant_harvest_records.created_at AS plant_harvest_records_created_at 
FROM plant_harvest_records 
WHERE plant_harvest_records.activation_id = %(activation_id_1)s
2026-09-16 23:57:16,606 INFO sqlalchemy.engine.Engine [cached since 0.1108s ago] {'activation_id_1': 'c0565da2-7595-4dbd-8fad-7923b0ce43a8'}
2026-09-16 23:57:16,608 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60187 - "GET /api/plant-activations/c0565da2-7595-4dbd-8fad-7923b0ce43a8/roi HTTP/1.1" 200 OK
2026-09-16 23:57:22,491 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:22,493 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:22,506 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,511 INFO sqlalchemy.engine.Engine [cached since 21.16s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:22,510 INFO sqlalchemy.engine.Engine SELECT plant_issue_reports.id AS plant_issue_reports_id, plant_issue_reports.issue_number AS plant_issue_reports_issue_number, plant_issue_reports.activation_id AS plant_issue_reports_activation_id, plant_issue_reports.issue_type AS plant_issue_reports_issue_type, plant_issue_reports.title AS plant_issue_reports_title, plant_issue_reports.description AS plant_issue_reports_description, plant_issue_reports.severity AS plant_issue_reports_severity, plant_issue_reports.photo_url AS plant_issue_reports_photo_url, plant_issue_reports.video_url AS plant_issue_reports_video_url, plant_issue_reports.status AS plant_issue_reports_status, plant_issue_reports.assigned_to AS plant_issue_reports_assigned_to, plant_issue_reports.resolution AS plant_issue_reports_resolution, plant_issue_reports.resolved_at AS plant_issue_reports_resolved_at, plant_issue_reports.recorded_by AS plant_issue_reports_recorded_by, plant_issue_reports.created_at AS plant_issue_reports_created_at 
FROM plant_issue_reports JOIN plant_activations ON plant_activations.id = plant_issue_reports.activation_id 
WHERE EXISTS (SELECT 1 
FROM plant_activations 
WHERE plant_activations.id = plant_issue_reports.activation_id AND plant_activations.farmer_id = %(farmer_id_1)s) ORDER BY plant_issue_reports.created_at DESC
2026-09-16 23:57:22,511 INFO sqlalchemy.engine.Engine [generated in 0.00120s] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:22,514 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:22,516 INFO sqlalchemy.engine.Engine [cached since 6.294s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:22,521 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,521 INFO sqlalchemy.engine.Engine [cached since 6.263s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:22,524 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,525 INFO sqlalchemy.engine.Engine [cached since 6.238s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:22,528 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:22,529 INFO sqlalchemy.engine.Engine [cached since 6.212s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:22,530 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:22,533 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,534 INFO sqlalchemy.engine.Engine [cached since 6.203s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
INFO:     127.0.0.1:60193 - "GET /api/plant-support/issues?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:22,538 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,540 INFO sqlalchemy.engine.Engine [cached since 6.281s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:22,544 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,544 INFO sqlalchemy.engine.Engine [cached since 6.257s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:22,547 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,550 INFO sqlalchemy.engine.Engine [cached since 6.219s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:22,559 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:22,560 INFO sqlalchemy.engine.Engine SELECT plant_issue_reports.id AS plant_issue_reports_id, plant_issue_reports.issue_number AS plant_issue_reports_issue_number, plant_issue_reports.activation_id AS plant_issue_reports_activation_id, plant_issue_reports.issue_type AS plant_issue_reports_issue_type, plant_issue_reports.title AS plant_issue_reports_title, plant_issue_reports.description AS plant_issue_reports_description, plant_issue_reports.severity AS plant_issue_reports_severity, plant_issue_reports.photo_url AS plant_issue_reports_photo_url, plant_issue_reports.video_url AS plant_issue_reports_video_url, plant_issue_reports.status AS plant_issue_reports_status, plant_issue_reports.assigned_to AS plant_issue_reports_assigned_to, plant_issue_reports.resolution AS plant_issue_reports_resolution, plant_issue_reports.resolved_at AS plant_issue_reports_resolved_at, plant_issue_reports.recorded_by AS plant_issue_reports_recorded_by, plant_issue_reports.created_at AS plant_issue_reports_created_at 
FROM plant_issue_reports JOIN plant_activations ON plant_activations.id = plant_issue_reports.activation_id 
WHERE EXISTS (SELECT 1 
FROM plant_activations 
WHERE plant_activations.id = plant_issue_reports.activation_id AND plant_activations.farmer_id = %(farmer_id_1)s) ORDER BY plant_issue_reports.created_at DESC
2026-09-16 23:57:22,561 INFO sqlalchemy.engine.Engine [cached since 0.05032s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:22,560 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60194 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:22,570 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60197 - "GET /api/plant-support/issues?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:22,580 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:22,584 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,584 INFO sqlalchemy.engine.Engine [cached since 21.24s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:22,589 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:22,590 INFO sqlalchemy.engine.Engine [cached since 6.368s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:22,593 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,594 INFO sqlalchemy.engine.Engine [cached since 6.335s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:22,597 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,598 INFO sqlalchemy.engine.Engine [cached since 6.311s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:22,602 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:22,602 INFO sqlalchemy.engine.Engine [cached since 6.285s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:22,606 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,606 INFO sqlalchemy.engine.Engine [cached since 6.276s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:22,609 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,610 INFO sqlalchemy.engine.Engine [cached since 6.351s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:22,613 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,614 INFO sqlalchemy.engine.Engine [cached since 6.326s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:22,619 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:22,620 INFO sqlalchemy.engine.Engine [cached since 6.29s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:22,624 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60200 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:26,024 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:26,026 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:26,040 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,039 INFO sqlalchemy.engine.Engine SELECT plant_warranty_claims.id AS plant_warranty_claims_id, plant_warranty_claims.claim_number AS plant_warranty_claims_claim_number, plant_warranty_claims.activation_id AS plant_warranty_claims_activation_id, plant_warranty_claims.warranty_start AS plant_warranty_claims_warranty_start, plant_warranty_claims.warranty_end AS plant_warranty_claims_warranty_end, plant_warranty_claims.claim_date AS plant_warranty_claims_claim_date, plant_warranty_claims.claim_type AS plant_warranty_claims_claim_type, plant_warranty_claims.reason AS plant_warranty_claims_reason, plant_warranty_claims.photo_url AS plant_warranty_claims_photo_url, plant_warranty_claims.status AS plant_warranty_claims_status, plant_warranty_claims.nursery_response AS plant_warranty_claims_nursery_response, plant_warranty_claims.resolved_by AS plant_warranty_claims_resolved_by, plant_warranty_claims.resolved_at AS plant_warranty_claims_resolved_at, plant_warranty_claims.created_at AS plant_warranty_claims_created_at 
FROM plant_warranty_claims JOIN plant_activations ON plant_activations.id = plant_warranty_claims.activation_id 
WHERE EXISTS (SELECT 1 
FROM plant_activations 
WHERE plant_activations.id = plant_warranty_claims.activation_id AND plant_activations.farmer_id = %(farmer_id_1)s) ORDER BY plant_warranty_claims.created_at DESC
2026-09-16 23:57:26,041 INFO sqlalchemy.engine.Engine [generated in 0.00228s] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:26,040 INFO sqlalchemy.engine.Engine [cached since 24.69s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:26,045 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:26,045 INFO sqlalchemy.engine.Engine [cached since 9.823s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:26,049 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,050 INFO sqlalchemy.engine.Engine [cached since 9.792s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:26,053 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60205 - "GET /api/plant-support/warranty?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:26,060 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,061 INFO sqlalchemy.engine.Engine [cached since 9.773s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:26,071 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:26,072 INFO sqlalchemy.engine.Engine [cached since 9.755s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:26,074 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:26,075 INFO sqlalchemy.engine.Engine SELECT plant_warranty_claims.id AS plant_warranty_claims_id, plant_warranty_claims.claim_number AS plant_warranty_claims_claim_number, plant_warranty_claims.activation_id AS plant_warranty_claims_activation_id, plant_warranty_claims.warranty_start AS plant_warranty_claims_warranty_start, plant_warranty_claims.warranty_end AS plant_warranty_claims_warranty_end, plant_warranty_claims.claim_date AS plant_warranty_claims_claim_date, plant_warranty_claims.claim_type AS plant_warranty_claims_claim_type, plant_warranty_claims.reason AS plant_warranty_claims_reason, plant_warranty_claims.photo_url AS plant_warranty_claims_photo_url, plant_warranty_claims.status AS plant_warranty_claims_status, plant_warranty_claims.nursery_response AS plant_warranty_claims_nursery_response, plant_warranty_claims.resolved_by AS plant_warranty_claims_resolved_by, plant_warranty_claims.resolved_at AS plant_warranty_claims_resolved_at, plant_warranty_claims.created_at AS plant_warranty_claims_created_at 
FROM plant_warranty_claims JOIN plant_activations ON plant_activations.id = plant_warranty_claims.activation_id 
WHERE EXISTS (SELECT 1 
FROM plant_activations 
WHERE plant_activations.id = plant_warranty_claims.activation_id AND plant_activations.farmer_id = %(farmer_id_1)s) ORDER BY plant_warranty_claims.created_at DESC
2026-09-16 23:57:26,077 INFO sqlalchemy.engine.Engine [cached since 0.0389s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:26,077 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,079 INFO sqlalchemy.engine.Engine [cached since 9.748s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:26,087 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,088 INFO sqlalchemy.engine.Engine [cached since 9.829s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:26,090 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:26,091 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,092 INFO sqlalchemy.engine.Engine [cached since 9.805s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
INFO:     127.0.0.1:60210 - "GET /api/plant-support/warranty?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:26,095 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,096 INFO sqlalchemy.engine.Engine [cached since 9.765s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:26,101 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60207 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:26,130 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:26,130 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,131 INFO sqlalchemy.engine.Engine [cached since 24.79s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:26,137 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:26,138 INFO sqlalchemy.engine.Engine [cached since 9.916s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:26,141 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,141 INFO sqlalchemy.engine.Engine [cached since 9.883s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:26,144 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,145 INFO sqlalchemy.engine.Engine [cached since 9.857s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:26,148 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:26,150 INFO sqlalchemy.engine.Engine [cached since 9.833s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:26,154 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,155 INFO sqlalchemy.engine.Engine [cached since 9.824s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:26,157 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,158 INFO sqlalchemy.engine.Engine [cached since 9.9s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:26,161 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,162 INFO sqlalchemy.engine.Engine [cached since 9.875s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:26,166 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:26,167 INFO sqlalchemy.engine.Engine [cached since 9.836s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:26,171 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60213 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:28,045 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:28,063 INFO sqlalchemy.engine.Engine SELECT farmer_support_tickets.id AS farmer_support_tickets_id, farmer_support_tickets.ticket_number AS farmer_support_tickets_ticket_number, farmer_support_tickets.farmer_id AS farmer_support_tickets_farmer_id, farmer_support_tickets.activation_id AS farmer_support_tickets_activation_id, farmer_support_tickets.category AS farmer_support_tickets_category, farmer_support_tickets.priority AS farmer_support_tickets_priority, farmer_support_tickets.subject AS farmer_support_tickets_subject, farmer_support_tickets.message AS farmer_support_tickets_message, farmer_support_tickets.photo_url AS farmer_support_tickets_photo_url, farmer_support_tickets.status AS farmer_support_tickets_status, farmer_support_tickets.assigned_to AS farmer_support_tickets_assigned_to, farmer_support_tickets.response AS farmer_support_tickets_response, farmer_support_tickets.resolved_at AS farmer_support_tickets_resolved_at, farmer_support_tickets.created_at AS farmer_support_tickets_created_at 
FROM farmer_support_tickets 
WHERE farmer_support_tickets.farmer_id = %(farmer_id_1)s ORDER BY farmer_support_tickets.created_at DESC
2026-09-16 23:57:28,057 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:28,069 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,071 INFO sqlalchemy.engine.Engine [cached since 26.72s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:28,064 INFO sqlalchemy.engine.Engine [generated in 0.00066s] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:28,075 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:28,075 INFO sqlalchemy.engine.Engine [cached since 11.85s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:28,078 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,079 INFO sqlalchemy.engine.Engine [cached since 11.82s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:28,083 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,085 INFO sqlalchemy.engine.Engine [cached since 11.8s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:28,086 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:28,089 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:28,089 INFO sqlalchemy.engine.Engine [cached since 11.77s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
INFO:     127.0.0.1:60217 - "GET /api/plant-support/tickets?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:28,093 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,094 INFO sqlalchemy.engine.Engine [cached since 11.76s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:28,097 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,097 INFO sqlalchemy.engine.Engine [cached since 11.84s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:28,107 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,107 INFO sqlalchemy.engine.Engine [cached since 11.82s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:28,110 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,111 INFO sqlalchemy.engine.Engine [cached since 11.78s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:28,111 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:28,112 INFO sqlalchemy.engine.Engine SELECT farmer_support_tickets.id AS farmer_support_tickets_id, farmer_support_tickets.ticket_number AS farmer_support_tickets_ticket_number, farmer_support_tickets.farmer_id AS farmer_support_tickets_farmer_id, farmer_support_tickets.activation_id AS farmer_support_tickets_activation_id, farmer_support_tickets.category AS farmer_support_tickets_category, farmer_support_tickets.priority AS farmer_support_tickets_priority, farmer_support_tickets.subject AS farmer_support_tickets_subject, farmer_support_tickets.message AS farmer_support_tickets_message, farmer_support_tickets.photo_url AS farmer_support_tickets_photo_url, farmer_support_tickets.status AS farmer_support_tickets_status, farmer_support_tickets.assigned_to AS farmer_support_tickets_assigned_to, farmer_support_tickets.response AS farmer_support_tickets_response, farmer_support_tickets.resolved_at AS farmer_support_tickets_resolved_at, farmer_support_tickets.created_at AS farmer_support_tickets_created_at 
FROM farmer_support_tickets 
WHERE farmer_support_tickets.farmer_id = %(farmer_id_1)s ORDER BY farmer_support_tickets.created_at DESC
2026-09-16 23:57:28,113 INFO sqlalchemy.engine.Engine [cached since 0.05001s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:28,117 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60219 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:28,123 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60222 - "GET /api/plant-support/tickets?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:28,139 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:28,141 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,142 INFO sqlalchemy.engine.Engine [cached since 26.8s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:28,146 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:28,146 INFO sqlalchemy.engine.Engine [cached since 11.92s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:28,152 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,156 INFO sqlalchemy.engine.Engine [cached since 11.9s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:28,160 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,160 INFO sqlalchemy.engine.Engine [cached since 11.87s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:28,163 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:28,163 INFO sqlalchemy.engine.Engine [cached since 11.85s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:28,168 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,169 INFO sqlalchemy.engine.Engine [cached since 11.84s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:28,172 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,173 INFO sqlalchemy.engine.Engine [cached since 11.91s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:28,176 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,177 INFO sqlalchemy.engine.Engine [cached since 11.89s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:28,180 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:28,180 INFO sqlalchemy.engine.Engine [cached since 11.85s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:28,186 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60225 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:29,535 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:29,540 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:29,541 INFO sqlalchemy.engine.Engine [cached since 28.19s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:29,548 INFO sqlalchemy.engine.Engine SELECT notifications.id AS notifications_id, notifications.user_id AS notifications_user_id, notifications.title AS notifications_title, notifications.message AS notifications_message, notifications.type AS notifications_type, notifications.is_read AS notifications_is_read, notifications.link AS notifications_link, notifications.created_at AS notifications_created_at 
FROM notifications 
WHERE notifications.user_id = %(user_id_1)s ORDER BY notifications.created_at DESC
2026-09-16 23:57:29,550 INFO sqlalchemy.engine.Engine [generated in 0.00159s] {'user_id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8'}
2026-09-16 23:57:29,555 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60229 - "GET /api/alerts/notifications HTTP/1.1" 200 OK
2026-09-16 23:57:29,571 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:29,571 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:29,572 INFO sqlalchemy.engine.Engine [cached since 28.23s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:29,576 INFO sqlalchemy.engine.Engine SELECT notifications.id AS notifications_id, notifications.user_id AS notifications_user_id, notifications.title AS notifications_title, notifications.message AS notifications_message, notifications.type AS notifications_type, notifications.is_read AS notifications_is_read, notifications.link AS notifications_link, notifications.created_at AS notifications_created_at 
FROM notifications 
WHERE notifications.user_id = %(user_id_1)s ORDER BY notifications.created_at DESC
2026-09-16 23:57:29,577 INFO sqlalchemy.engine.Engine [cached since 0.02831s ago] {'user_id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8'}
2026-09-16 23:57:29,585 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60232 - "GET /api/alerts/notifications HTTP/1.1" 200 OK
2026-09-16 23:57:31,028 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,033 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,034 INFO sqlalchemy.engine.Engine [cached since 29.69s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,038 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:31,039 INFO sqlalchemy.engine.Engine [cached since 14.82s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:31,042 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,043 INFO sqlalchemy.engine.Engine [cached since 14.78s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:31,046 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,046 INFO sqlalchemy.engine.Engine [cached since 14.76s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,050 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:31,051 INFO sqlalchemy.engine.Engine [cached since 14.73s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:31,054 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,055 INFO sqlalchemy.engine.Engine [cached since 14.72s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,057 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,058 INFO sqlalchemy.engine.Engine [cached since 14.8s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:31,061 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,062 INFO sqlalchemy.engine.Engine [cached since 14.77s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,064 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,065 INFO sqlalchemy.engine.Engine [cached since 14.73s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,069 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60235 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:31,092 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,093 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,094 INFO sqlalchemy.engine.Engine [cached since 29.75s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,100 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:31,101 INFO sqlalchemy.engine.Engine [cached since 14.88s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:31,104 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,105 INFO sqlalchemy.engine.Engine [cached since 14.85s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:31,108 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,109 INFO sqlalchemy.engine.Engine [cached since 14.82s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,113 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:31,113 INFO sqlalchemy.engine.Engine [cached since 14.8s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:31,118 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,118 INFO sqlalchemy.engine.Engine [cached since 14.79s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,121 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,122 INFO sqlalchemy.engine.Engine [cached since 14.86s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:31,127 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,127 INFO sqlalchemy.engine.Engine [cached since 14.84s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,129 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,132 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,131 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,134 INFO sqlalchemy.engine.Engine [cached since 14.8s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,133 INFO sqlalchemy.engine.Engine [cached since 29.79s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,141 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:31,144 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:31,145 INFO sqlalchemy.engine.Engine [generated in 0.00091s] {}
INFO:     127.0.0.1:60238 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:31,148 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,150 INFO sqlalchemy.engine.Engine [cached since 14.89s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:31,155 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,155 INFO sqlalchemy.engine.Engine [cached since 14.87s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,160 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:31,160 INFO sqlalchemy.engine.Engine [cached since 14.84s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:31,169 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,170 INFO sqlalchemy.engine.Engine [cached since 14.84s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,173 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,174 INFO sqlalchemy.engine.Engine [cached since 14.92s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:31,177 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,178 INFO sqlalchemy.engine.Engine [cached since 14.89s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,181 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,182 INFO sqlalchemy.engine.Engine [cached since 14.85s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,187 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60241 - "GET /api/plant-activations HTTP/1.1" 200 OK
2026-09-16 23:57:31,205 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,206 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,206 INFO sqlalchemy.engine.Engine [cached since 29.86s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,210 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:31,211 INFO sqlalchemy.engine.Engine [cached since 0.06692s ago] {}
2026-09-16 23:57:31,214 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,217 INFO sqlalchemy.engine.Engine [cached since 14.96s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:31,222 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,223 INFO sqlalchemy.engine.Engine [cached since 14.94s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,226 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:31,227 INFO sqlalchemy.engine.Engine [cached since 14.91s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:31,230 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,230 INFO sqlalchemy.engine.Engine [cached since 14.9s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,233 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,234 INFO sqlalchemy.engine.Engine [cached since 14.98s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:31,238 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,238 INFO sqlalchemy.engine.Engine [cached since 14.95s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,240 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,241 INFO sqlalchemy.engine.Engine [cached since 14.91s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,244 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60244 - "GET /api/plant-activations HTTP/1.1" 200 OK
2026-09-16 23:57:31,262 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,263 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,264 INFO sqlalchemy.engine.Engine [cached since 29.92s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,284 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:31,286 INFO sqlalchemy.engine.Engine [cached since 0.1422s ago] {}
2026-09-16 23:57:31,289 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,290 INFO sqlalchemy.engine.Engine [cached since 15.03s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:31,294 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,295 INFO sqlalchemy.engine.Engine [cached since 15.01s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,300 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:31,301 INFO sqlalchemy.engine.Engine [cached since 14.98s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:31,304 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,305 INFO sqlalchemy.engine.Engine [cached since 14.97s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,308 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,308 INFO sqlalchemy.engine.Engine [cached since 15.05s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:31,311 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,312 INFO sqlalchemy.engine.Engine [cached since 15.02s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,315 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,317 INFO sqlalchemy.engine.Engine [cached since 14.99s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,321 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60247 - "GET /api/plant-activations HTTP/1.1" 200 OK
2026-09-16 23:57:31,337 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,338 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,338 INFO sqlalchemy.engine.Engine [cached since 29.99s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,342 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:31,343 INFO sqlalchemy.engine.Engine [cached since 0.1988s ago] {}
2026-09-16 23:57:31,345 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,346 INFO sqlalchemy.engine.Engine [cached since 15.09s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:31,353 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,353 INFO sqlalchemy.engine.Engine [cached since 15.07s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,356 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,357 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,358 INFO sqlalchemy.engine.Engine [cached since 30.01s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,358 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:31,359 INFO sqlalchemy.engine.Engine [cached since 15.04s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:31,362 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,367 INFO sqlalchemy.engine.Engine [cached since 15.04s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,366 INFO sqlalchemy.engine.Engine SELECT plant_harvest_records.id AS plant_harvest_records_id, plant_harvest_records.harvest_number AS plant_harvest_records_harvest_number, plant_harvest_records.activation_id AS plant_harvest_records_activation_id, plant_harvest_records.harvest_date AS plant_harvest_records_harvest_date, plant_harvest_records.quantity AS plant_harvest_records_quantity, plant_harvest_records.unit AS plant_harvest_records_unit, plant_harvest_records.grade AS plant_harvest_records_grade, plant_harvest_records.quality AS plant_harvest_records_quality, plant_harvest_records.selling_price AS plant_harvest_records_selling_price, plant_harvest_records.buyer AS plant_harvest_records_buyer, plant_harvest_records.revenue AS plant_harvest_records_revenue, plant_harvest_records.photo_url AS plant_harvest_records_photo_url, plant_harvest_records.notes AS plant_harvest_records_notes, plant_harvest_records.recorded_by AS plant_harvest_records_recorded_by, plant_harvest_records.created_at AS plant_harvest_records_created_at 
FROM plant_harvest_records 
WHERE plant_harvest_records.activation_id = %(activation_id_1)s ORDER BY plant_harvest_records.harvest_date DESC
2026-09-16 23:57:31,368 INFO sqlalchemy.engine.Engine [generated in 0.00247s] {'activation_id_1': 'c92682ad-3c28-41d3-a512-1ebe5b33bab5'}
2026-09-16 23:57:31,369 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,370 INFO sqlalchemy.engine.Engine [cached since 15.11s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:31,375 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,376 INFO sqlalchemy.engine.Engine [cached since 15.09s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:31,376 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:31,378 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
INFO:     127.0.0.1:60253 - "GET /api/plant-activations/c92682ad-3c28-41d3-a512-1ebe5b33bab5/harvests HTTP/1.1" 200 OK
2026-09-16 23:57:31,379 INFO sqlalchemy.engine.Engine [cached since 15.05s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:31,386 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60250 - "GET /api/plant-activations HTTP/1.1" 200 OK
2026-09-16 23:57:31,406 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,407 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,408 INFO sqlalchemy.engine.Engine [cached since 30.06s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,411 INFO sqlalchemy.engine.Engine SELECT plant_harvest_records.id AS plant_harvest_records_id, plant_harvest_records.harvest_number AS plant_harvest_records_harvest_number, plant_harvest_records.activation_id AS plant_harvest_records_activation_id, plant_harvest_records.harvest_date AS plant_harvest_records_harvest_date, plant_harvest_records.quantity AS plant_harvest_records_quantity, plant_harvest_records.unit AS plant_harvest_records_unit, plant_harvest_records.grade AS plant_harvest_records_grade, plant_harvest_records.quality AS plant_harvest_records_quality, plant_harvest_records.selling_price AS plant_harvest_records_selling_price, plant_harvest_records.buyer AS plant_harvest_records_buyer, plant_harvest_records.revenue AS plant_harvest_records_revenue, plant_harvest_records.photo_url AS plant_harvest_records_photo_url, plant_harvest_records.notes AS plant_harvest_records_notes, plant_harvest_records.recorded_by AS plant_harvest_records_recorded_by, plant_harvest_records.created_at AS plant_harvest_records_created_at 
FROM plant_harvest_records 
WHERE plant_harvest_records.activation_id = %(activation_id_1)s ORDER BY plant_harvest_records.harvest_date DESC
2026-09-16 23:57:31,412 INFO sqlalchemy.engine.Engine [cached since 0.04659s ago] {'activation_id_1': 'c0565da2-7595-4dbd-8fad-7923b0ce43a8'}
2026-09-16 23:57:31,420 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:31,423 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,424 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,424 INFO sqlalchemy.engine.Engine [cached since 30.08s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
INFO:     127.0.0.1:60256 - "GET /api/plant-activations/c0565da2-7595-4dbd-8fad-7923b0ce43a8/harvests HTTP/1.1" 200 OK
2026-09-16 23:57:31,428 INFO sqlalchemy.engine.Engine SELECT plant_harvest_records.id AS plant_harvest_records_id, plant_harvest_records.harvest_number AS plant_harvest_records_harvest_number, plant_harvest_records.activation_id AS plant_harvest_records_activation_id, plant_harvest_records.harvest_date AS plant_harvest_records_harvest_date, plant_harvest_records.quantity AS plant_harvest_records_quantity, plant_harvest_records.unit AS plant_harvest_records_unit, plant_harvest_records.grade AS plant_harvest_records_grade, plant_harvest_records.quality AS plant_harvest_records_quality, plant_harvest_records.selling_price AS plant_harvest_records_selling_price, plant_harvest_records.buyer AS plant_harvest_records_buyer, plant_harvest_records.revenue AS plant_harvest_records_revenue, plant_harvest_records.photo_url AS plant_harvest_records_photo_url, plant_harvest_records.notes AS plant_harvest_records_notes, plant_harvest_records.recorded_by AS plant_harvest_records_recorded_by, plant_harvest_records.created_at AS plant_harvest_records_created_at 
FROM plant_harvest_records 
WHERE plant_harvest_records.activation_id = %(activation_id_1)s ORDER BY plant_harvest_records.harvest_date DESC
2026-09-16 23:57:31,429 INFO sqlalchemy.engine.Engine [cached since 0.06329s ago] {'activation_id_1': 'c92682ad-3c28-41d3-a512-1ebe5b33bab5'}
2026-09-16 23:57:31,435 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60259 - "GET /api/plant-activations/c92682ad-3c28-41d3-a512-1ebe5b33bab5/harvests HTTP/1.1" 200 OK
2026-09-16 23:57:31,467 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:31,469 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:31,469 INFO sqlalchemy.engine.Engine [cached since 30.12s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:31,473 INFO sqlalchemy.engine.Engine SELECT plant_harvest_records.id AS plant_harvest_records_id, plant_harvest_records.harvest_number AS plant_harvest_records_harvest_number, plant_harvest_records.activation_id AS plant_harvest_records_activation_id, plant_harvest_records.harvest_date AS plant_harvest_records_harvest_date, plant_harvest_records.quantity AS plant_harvest_records_quantity, plant_harvest_records.unit AS plant_harvest_records_unit, plant_harvest_records.grade AS plant_harvest_records_grade, plant_harvest_records.quality AS plant_harvest_records_quality, plant_harvest_records.selling_price AS plant_harvest_records_selling_price, plant_harvest_records.buyer AS plant_harvest_records_buyer, plant_harvest_records.revenue AS plant_harvest_records_revenue, plant_harvest_records.photo_url AS plant_harvest_records_photo_url, plant_harvest_records.notes AS plant_harvest_records_notes, plant_harvest_records.recorded_by AS plant_harvest_records_recorded_by, plant_harvest_records.created_at AS plant_harvest_records_created_at 
FROM plant_harvest_records 
WHERE plant_harvest_records.activation_id = %(activation_id_1)s ORDER BY plant_harvest_records.harvest_date DESC
2026-09-16 23:57:31,473 INFO sqlalchemy.engine.Engine [cached since 0.1081s ago] {'activation_id_1': 'c0565da2-7595-4dbd-8fad-7923b0ce43a8'}
2026-09-16 23:57:31,477 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60262 - "GET /api/plant-activations/c0565da2-7595-4dbd-8fad-7923b0ce43a8/harvests HTTP/1.1" 200 OK
2026-09-16 23:57:46,792 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:46,794 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:46,797 INFO sqlalchemy.engine.Engine SELECT plant_warranty_claims.id AS plant_warranty_claims_id, plant_warranty_claims.claim_number AS plant_warranty_claims_claim_number, plant_warranty_claims.activation_id AS plant_warranty_claims_activation_id, plant_warranty_claims.warranty_start AS plant_warranty_claims_warranty_start, plant_warranty_claims.warranty_end AS plant_warranty_claims_warranty_end, plant_warranty_claims.claim_date AS plant_warranty_claims_claim_date, plant_warranty_claims.claim_type AS plant_warranty_claims_claim_type, plant_warranty_claims.reason AS plant_warranty_claims_reason, plant_warranty_claims.photo_url AS plant_warranty_claims_photo_url, plant_warranty_claims.status AS plant_warranty_claims_status, plant_warranty_claims.nursery_response AS plant_warranty_claims_nursery_response, plant_warranty_claims.resolved_by AS plant_warranty_claims_resolved_by, plant_warranty_claims.resolved_at AS plant_warranty_claims_resolved_at, plant_warranty_claims.created_at AS plant_warranty_claims_created_at 
FROM plant_warranty_claims JOIN plant_activations ON plant_activations.id = plant_warranty_claims.activation_id 
WHERE EXISTS (SELECT 1 
FROM plant_activations 
WHERE plant_activations.id = plant_warranty_claims.activation_id AND plant_activations.farmer_id = %(farmer_id_1)s) ORDER BY plant_warranty_claims.created_at DESC
2026-09-16 23:57:46,800 INFO sqlalchemy.engine.Engine [cached since 20.76s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:46,800 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,801 INFO sqlalchemy.engine.Engine [cached since 45.46s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:46,806 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:46,807 INFO sqlalchemy.engine.Engine [cached since 30.58s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:46,809 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,810 INFO sqlalchemy.engine.Engine [cached since 30.55s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:46,811 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:46,814 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,817 INFO sqlalchemy.engine.Engine [cached since 30.53s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
INFO:     127.0.0.1:60268 - "GET /api/plant-support/warranty?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:46,820 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:46,823 INFO sqlalchemy.engine.Engine [cached since 30.51s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:46,826 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,826 INFO sqlalchemy.engine.Engine [cached since 30.5s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:46,829 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,829 INFO sqlalchemy.engine.Engine [cached since 30.57s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:46,834 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,835 INFO sqlalchemy.engine.Engine [cached since 30.55s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:46,838 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,839 INFO sqlalchemy.engine.Engine [cached since 30.51s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:46,846 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:46,850 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:46,852 INFO sqlalchemy.engine.Engine SELECT plant_warranty_claims.id AS plant_warranty_claims_id, plant_warranty_claims.claim_number AS plant_warranty_claims_claim_number, plant_warranty_claims.activation_id AS plant_warranty_claims_activation_id, plant_warranty_claims.warranty_start AS plant_warranty_claims_warranty_start, plant_warranty_claims.warranty_end AS plant_warranty_claims_warranty_end, plant_warranty_claims.claim_date AS plant_warranty_claims_claim_date, plant_warranty_claims.claim_type AS plant_warranty_claims_claim_type, plant_warranty_claims.reason AS plant_warranty_claims_reason, plant_warranty_claims.photo_url AS plant_warranty_claims_photo_url, plant_warranty_claims.status AS plant_warranty_claims_status, plant_warranty_claims.nursery_response AS plant_warranty_claims_nursery_response, plant_warranty_claims.resolved_by AS plant_warranty_claims_resolved_by, plant_warranty_claims.resolved_at AS plant_warranty_claims_resolved_at, plant_warranty_claims.created_at AS plant_warranty_claims_created_at 
FROM plant_warranty_claims JOIN plant_activations ON plant_activations.id = plant_warranty_claims.activation_id 
WHERE EXISTS (SELECT 1 
FROM plant_activations 
WHERE plant_activations.id = plant_warranty_claims.activation_id AND plant_activations.farmer_id = %(farmer_id_1)s) ORDER BY plant_warranty_claims.created_at DESC
2026-09-16 23:57:46,853 INFO sqlalchemy.engine.Engine [cached since 20.81s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
INFO:     127.0.0.1:60269 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:46,857 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60272 - "GET /api/plant-support/warranty?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:46,875 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:46,876 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,877 INFO sqlalchemy.engine.Engine [cached since 45.53s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:46,882 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:46,886 INFO sqlalchemy.engine.Engine [cached since 30.66s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:46,890 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,891 INFO sqlalchemy.engine.Engine [cached since 30.63s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:46,894 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,894 INFO sqlalchemy.engine.Engine [cached since 30.61s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:46,897 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:46,900 INFO sqlalchemy.engine.Engine [cached since 30.58s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:46,906 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,906 INFO sqlalchemy.engine.Engine [cached since 30.58s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:46,909 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,909 INFO sqlalchemy.engine.Engine [cached since 30.65s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:46,913 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,913 INFO sqlalchemy.engine.Engine [cached since 30.63s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:46,917 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:46,917 INFO sqlalchemy.engine.Engine [cached since 30.59s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:46,921 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60275 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:47,487 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:47,489 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:47,493 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,492 INFO sqlalchemy.engine.Engine SELECT farmer_support_tickets.id AS farmer_support_tickets_id, farmer_support_tickets.ticket_number AS farmer_support_tickets_ticket_number, farmer_support_tickets.farmer_id AS farmer_support_tickets_farmer_id, farmer_support_tickets.activation_id AS farmer_support_tickets_activation_id, farmer_support_tickets.category AS farmer_support_tickets_category, farmer_support_tickets.priority AS farmer_support_tickets_priority, farmer_support_tickets.subject AS farmer_support_tickets_subject, farmer_support_tickets.message AS farmer_support_tickets_message, farmer_support_tickets.photo_url AS farmer_support_tickets_photo_url, farmer_support_tickets.status AS farmer_support_tickets_status, farmer_support_tickets.assigned_to AS farmer_support_tickets_assigned_to, farmer_support_tickets.response AS farmer_support_tickets_response, farmer_support_tickets.resolved_at AS farmer_support_tickets_resolved_at, farmer_support_tickets.created_at AS farmer_support_tickets_created_at 
FROM farmer_support_tickets 
WHERE farmer_support_tickets.farmer_id = %(farmer_id_1)s ORDER BY farmer_support_tickets.created_at DESC
2026-09-16 23:57:47,495 INFO sqlalchemy.engine.Engine [cached since 19.43s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:47,494 INFO sqlalchemy.engine.Engine [cached since 46.15s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:47,501 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:47,502 INFO sqlalchemy.engine.Engine [cached since 31.28s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:47,503 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:47,505 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
INFO:     127.0.0.1:60279 - "GET /api/plant-support/tickets?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:47,507 INFO sqlalchemy.engine.Engine [cached since 31.25s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:47,511 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,511 INFO sqlalchemy.engine.Engine [cached since 31.22s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:47,514 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:47,526 INFO sqlalchemy.engine.Engine [cached since 31.21s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:47,529 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:47,531 INFO sqlalchemy.engine.Engine SELECT farmer_support_tickets.id AS farmer_support_tickets_id, farmer_support_tickets.ticket_number AS farmer_support_tickets_ticket_number, farmer_support_tickets.farmer_id AS farmer_support_tickets_farmer_id, farmer_support_tickets.activation_id AS farmer_support_tickets_activation_id, farmer_support_tickets.category AS farmer_support_tickets_category, farmer_support_tickets.priority AS farmer_support_tickets_priority, farmer_support_tickets.subject AS farmer_support_tickets_subject, farmer_support_tickets.message AS farmer_support_tickets_message, farmer_support_tickets.photo_url AS farmer_support_tickets_photo_url, farmer_support_tickets.status AS farmer_support_tickets_status, farmer_support_tickets.assigned_to AS farmer_support_tickets_assigned_to, farmer_support_tickets.response AS farmer_support_tickets_response, farmer_support_tickets.resolved_at AS farmer_support_tickets_resolved_at, farmer_support_tickets.created_at AS farmer_support_tickets_created_at 
FROM farmer_support_tickets 
WHERE farmer_support_tickets.farmer_id = %(farmer_id_1)s ORDER BY farmer_support_tickets.created_at DESC
2026-09-16 23:57:47,531 INFO sqlalchemy.engine.Engine [cached since 19.47s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:47,530 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,537 INFO sqlalchemy.engine.Engine [cached since 31.21s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:47,540 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,541 INFO sqlalchemy.engine.Engine [cached since 31.28s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:47,544 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,545 INFO sqlalchemy.engine.Engine [cached since 31.26s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:47,545 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60284 - "GET /api/plant-support/tickets?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:47,554 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,555 INFO sqlalchemy.engine.Engine [cached since 31.22s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:47,560 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60281 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:47,579 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:47,580 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,580 INFO sqlalchemy.engine.Engine [cached since 46.23s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:47,585 INFO sqlalchemy.engine.Engine SELECT plant_activations.id AS plant_activations_id, plant_activations.activation_id AS plant_activations_activation_id, plant_activations.passport_id AS plant_activations_passport_id, plant_activations.farmer_id AS plant_activations_farmer_id, plant_activations.farm_id AS plant_activations_farm_id, plant_activations.field_id AS plant_activations_field_id, plant_activations.purchase_date AS plant_activations_purchase_date, plant_activations.activation_date AS plant_activations_activation_date, plant_activations.planting_date AS plant_activations_planting_date, plant_activations.initial_condition AS plant_activations_initial_condition, plant_activations.initial_photo AS plant_activations_initial_photo, plant_activations.gps_latitude AS plant_activations_gps_latitude, plant_activations.gps_longitude AS plant_activations_gps_longitude, plant_activations.notes AS plant_activations_notes, plant_activations.status AS plant_activations_status, plant_activations.created_at AS plant_activations_created_at, plant_activations.updated_at AS plant_activations_updated_at 
FROM plant_activations 
WHERE plant_activations.farmer_id = %(farmer_id_1)s ORDER BY plant_activations.created_at DESC
2026-09-16 23:57:47,585 INFO sqlalchemy.engine.Engine [cached since 31.36s ago] {'farmer_id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a'}
2026-09-16 23:57:47,588 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,589 INFO sqlalchemy.engine.Engine [cached since 31.33s ago] {'id_1': '48e45b87-8e98-429b-b12e-53cc76d025db', 'param_1': 1}
2026-09-16 23:57:47,592 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,593 INFO sqlalchemy.engine.Engine [cached since 31.31s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:47,596 INFO sqlalchemy.engine.Engine SELECT customers.id AS customers_id, customers.code AS customers_code, customers.name AS customers_name, customers.customer_type AS customers_customer_type, customers.phone AS customers_phone, customers.email AS customers_email, customers.address AS customers_address, customers.city AS customers_city, customers.gst_number AS customers_gst_number, customers.total_purchases AS customers_total_purchases, customers.outstanding AS customers_outstanding, customers.loyalty_points AS customers_loyalty_points, customers.is_farmer AS customers_is_farmer, customers.is_active AS customers_is_active, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at 
FROM customers 
WHERE customers.id = %(pk_1)s
2026-09-16 23:57:47,596 INFO sqlalchemy.engine.Engine [cached since 31.28s ago] {'pk_1': '735599f7-4483-4db9-8ebe-3ffcfd188f86'}
2026-09-16 23:57:47,601 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,603 INFO sqlalchemy.engine.Engine [cached since 31.27s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:47,608 INFO sqlalchemy.engine.Engine SELECT plant_passports.id AS plant_passports_id, plant_passports.passport_id AS plant_passports_passport_id, plant_passports.batch_id AS plant_passports_batch_id, plant_passports.plant_id AS plant_passports_plant_id, plant_passports.variety_id AS plant_passports_variety_id, plant_passports.category_id AS plant_passports_category_id, plant_passports.branch_id AS plant_passports_branch_id, plant_passports.plant_name AS plant_passports_plant_name, plant_passports.scientific_name AS plant_passports_scientific_name, plant_passports.local_name AS plant_passports_local_name, plant_passports.variety_name AS plant_passports_variety_name, plant_passports.category_name AS plant_passports_category_name, plant_passports.batch_number AS plant_passports_batch_number, plant_passports.seed_lot_number AS plant_passports_seed_lot_number, plant_passports.seed_supplier AS plant_passports_seed_supplier, plant_passports.sowing_date AS plant_passports_sowing_date, plant_passports.germination_date AS plant_passports_germination_date, plant_passports.germination_rate AS plant_passports_germination_rate, plant_passports.transplant_date AS plant_passports_transplant_date, plant_passports.current_growth_stage AS plant_passports_current_growth_stage, plant_passports.expected_ready_date AS plant_passports_expected_ready_date, plant_passports.ready_for_sale_date AS plant_passports_ready_for_sale_date, plant_passports.current_stock AS plant_passports_current_stock, plant_passports.nursery_zone AS plant_passports_nursery_zone, plant_passports.greenhouse AS plant_passports_greenhouse, plant_passports.bed_number AS plant_passports_bed_number, plant_passports.tray_number AS plant_passports_tray_number, plant_passports.pot_number AS plant_passports_pot_number, plant_passports.warehouse_location AS plant_passports_warehouse_location, plant_passports.location AS plant_passports_location, plant_passports.production_cost AS plant_passports_production_cost, plant_passports.selling_price AS plant_passports_selling_price, plant_passports.wholesale_price AS plant_passports_wholesale_price, plant_passports.discount_price AS plant_passports_discount_price, plant_passports.profit_margin AS plant_passports_profit_margin, plant_passports.health_status AS plant_passports_health_status, plant_passports.health_score AS plant_passports_health_score, plant_passports.leaf_color AS plant_passports_leaf_color, plant_passports.plant_height_cm AS plant_passports_plant_height_cm, plant_passports.root_condition AS plant_passports_root_condition, plant_passports.stem_thickness_mm AS plant_passports_stem_thickness_mm, plant_passports.disease_status AS plant_passports_disease_status, plant_passports.pest_status AS plant_passports_pest_status, plant_passports.mortality_risk AS plant_passports_mortality_risk, plant_passports.qr_code AS plant_passports_qr_code, plant_passports.barcode AS plant_passports_barcode, plant_passports.scan_url AS plant_passports_scan_url, plant_passports.owner_id AS plant_passports_owner_id, plant_passports.activation_status AS plant_passports_activation_status, plant_passports.is_active AS plant_passports_is_active, plant_passports.created_at AS plant_passports_created_at, plant_passports.updated_at AS plant_passports_updated_at 
FROM plant_passports 
WHERE plant_passports.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,609 INFO sqlalchemy.engine.Engine [cached since 31.35s ago] {'id_1': '7016bebd-79cc-4a05-9a4e-fa6e60cce7e9', 'param_1': 1}
2026-09-16 23:57:47,614 INFO sqlalchemy.engine.Engine SELECT farmer_profiles.id AS farmer_profiles_id, farmer_profiles.customer_id AS farmer_profiles_customer_id, farmer_profiles.farm_name AS farmer_profiles_farm_name, farmer_profiles.farm_area AS farmer_profiles_farm_area, farmer_profiles.land_area AS farmer_profiles_land_area, farmer_profiles.division AS farmer_profiles_division, farmer_profiles.district AS farmer_profiles_district, farmer_profiles.upazila AS farmer_profiles_upazila, farmer_profiles."union" AS farmer_profiles_union, farmer_profiles.village AS farmer_profiles_village, farmer_profiles.latitude AS farmer_profiles_latitude, farmer_profiles.longitude AS farmer_profiles_longitude, farmer_profiles.profile_photo AS farmer_profiles_profile_photo, farmer_profiles.farming_type AS farmer_profiles_farming_type, farmer_profiles.soil_type AS farmer_profiles_soil_type, farmer_profiles.irrigation_type AS farmer_profiles_irrigation_type, farmer_profiles.is_verified AS farmer_profiles_is_verified, farmer_profiles.is_active AS farmer_profiles_is_active, farmer_profiles.created_at AS farmer_profiles_created_at, farmer_profiles.updated_at AS farmer_profiles_updated_at 
FROM farmer_profiles 
WHERE farmer_profiles.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,614 INFO sqlalchemy.engine.Engine [cached since 31.33s ago] {'id_1': '580d74dc-ff21-48da-a9fe-bcc5b643294a', 'param_1': 1}
2026-09-16 23:57:47,620 INFO sqlalchemy.engine.Engine SELECT farms.id AS farms_id, farms.farmer_id AS farms_farmer_id, farms.name AS farms_name, farms.area AS farms_area, farms.address AS farms_address, farms.latitude AS farms_latitude, farms.longitude AS farms_longitude, farms.soil_type AS farms_soil_type, farms.irrigation_type AS farms_irrigation_type, farms.farming_type AS farms_farming_type, farms.notes AS farms_notes, farms.is_active AS farms_is_active, farms.created_at AS farms_created_at, farms.updated_at AS farms_updated_at 
FROM farms 
WHERE farms.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:47,621 INFO sqlalchemy.engine.Engine [cached since 31.29s ago] {'id_1': '91c34656-d9c3-41d4-81bd-852a3c671e35', 'param_1': 1}
2026-09-16 23:57:47,625 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60287 - "GET /api/plant-activations?farmer_id=580d74dc-ff21-48da-a9fe-bcc5b643294a HTTP/1.1" 200 OK
2026-09-16 23:57:53,793 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:53,794 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:53,799 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:53,798 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:53,800 INFO sqlalchemy.engine.Engine [cached since 52.45s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:53,803 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:53,804 INFO sqlalchemy.engine.Engine [cached since 52.46s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:53,815 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:57:53,816 INFO sqlalchemy.engine.Engine [generated in 0.00134s] {}
2026-09-16 23:57:53,808 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:53,818 INFO sqlalchemy.engine.Engine [cached since 52.47s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:53,826 INFO sqlalchemy.engine.Engine SELECT treatments.id AS treatments_id, treatments.treatment_number AS treatments_treatment_number, treatments.batch_id AS treatments_batch_id, treatments.variety_id AS treatments_variety_id, treatments.block_bed AS treatments_block_bed, treatments.treatment_type AS treatments_treatment_type, treatments.treatment_date AS treatments_treatment_date, treatments.treatment_time AS treatments_treatment_time, treatments.growth_stage AS treatments_growth_stage, treatments.employee_id AS treatments_employee_id, treatments.status AS treatments_status, treatments.notes AS treatments_notes, treatments.cost AS treatments_cost, treatments.created_by AS treatments_created_by, treatments.created_at AS treatments_created_at, treatments.updated_at AS treatments_updated_at 
FROM treatments ORDER BY treatments.treatment_date DESC
2026-09-16 23:57:53,827 INFO sqlalchemy.engine.Engine [generated in 0.00113s] {}
2026-09-16 23:57:53,834 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:57:53,838 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:57:53,838 INFO sqlalchemy.engine.Engine [generated in 0.00077s] {}
INFO:     127.0.0.1:60294 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:57:53,851 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60297 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:57:53,857 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:53,858 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:53,859 INFO sqlalchemy.engine.Engine [cached since 52.51s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:53,862 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:57:53,862 INFO sqlalchemy.engine.Engine [cached since 0.04776s ago] {}
2026-09-16 23:57:53,871 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60300 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:57:53,886 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:53,887 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:53,887 INFO sqlalchemy.engine.Engine [cached since 52.54s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:53,891 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:57:53,893 INFO sqlalchemy.engine.Engine [cached since 0.05532s ago] {}
2026-09-16 23:57:53,894 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60292 - "GET /api/treatments HTTP/1.1" 200 OK
2026-09-16 23:57:53,898 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60303 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:57:53,918 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:57:53,919 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:57:53,919 INFO sqlalchemy.engine.Engine [cached since 52.57s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:57:53,923 INFO sqlalchemy.engine.Engine SELECT treatments.id AS treatments_id, treatments.treatment_number AS treatments_treatment_number, treatments.batch_id AS treatments_batch_id, treatments.variety_id AS treatments_variety_id, treatments.block_bed AS treatments_block_bed, treatments.treatment_type AS treatments_treatment_type, treatments.treatment_date AS treatments_treatment_date, treatments.treatment_time AS treatments_treatment_time, treatments.growth_stage AS treatments_growth_stage, treatments.employee_id AS treatments_employee_id, treatments.status AS treatments_status, treatments.notes AS treatments_notes, treatments.cost AS treatments_cost, treatments.created_by AS treatments_created_by, treatments.created_at AS treatments_created_at, treatments.updated_at AS treatments_updated_at 
FROM treatments ORDER BY treatments.treatment_date DESC
2026-09-16 23:57:53,924 INFO sqlalchemy.engine.Engine [cached since 0.09776s ago] {}
2026-09-16 23:57:53,931 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60306 - "GET /api/treatments HTTP/1.1" 200 OK
2026-09-16 23:58:05,628 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:05,630 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:05,636 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:05,636 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:05,637 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:05,638 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:05,641 INFO sqlalchemy.engine.Engine [cached since 64.3s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:05,640 INFO sqlalchemy.engine.Engine [cached since 64.29s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:05,640 INFO sqlalchemy.engine.Engine [cached since 64.29s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:05,645 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:05,646 INFO sqlalchemy.engine.Engine [cached since 11.83s ago] {}
2026-09-16 23:58:05,656 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:05,661 INFO sqlalchemy.engine.Engine [generated in 0.00570s] {}
2026-09-16 23:58:05,661 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:05,665 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:05,668 INFO sqlalchemy.engine.Engine [generated in 0.00642s] {}
INFO:     127.0.0.1:60317 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:05,672 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60314 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:05,688 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:05,689 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:05,692 INFO sqlalchemy.engine.Engine [cached since 64.35s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:05,695 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:05,696 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:05,697 INFO sqlalchemy.engine.Engine [cached since 64.35s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:05,698 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:05,699 INFO sqlalchemy.engine.Engine [cached since 11.88s ago] {}
2026-09-16 23:58:05,704 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:05,719 INFO sqlalchemy.engine.Engine [cached since 0.06358s ago] {}
2026-09-16 23:58:05,724 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:05,725 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60321 - "GET /api/production/batches HTTP/1.1" 200 OK
INFO:     127.0.0.1:60323 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:05,744 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60316 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:05,771 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:05,772 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:05,773 INFO sqlalchemy.engine.Engine [cached since 64.43s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:05,777 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:05,777 INFO sqlalchemy.engine.Engine [cached since 0.1163s ago] {}
2026-09-16 23:58:05,784 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60326 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:08,376 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:08,380 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:08,381 INFO sqlalchemy.engine.Engine [cached since 67.04s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:08,385 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records 
WHERE health_records.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:08,385 INFO sqlalchemy.engine.Engine [generated in 0.00055s] {'id_1': 'e0b4cb76-4432-44e1-b451-f3db5dda288c', 'param_1': 1}
2026-09-16 23:58:08,388 INFO sqlalchemy.engine.Engine DELETE FROM health_records WHERE health_records.id = %(id)s
2026-09-16 23:58:08,389 INFO sqlalchemy.engine.Engine [generated in 0.00052s] {'id': 'e0b4cb76-4432-44e1-b451-f3db5dda288c'}
2026-09-16 23:58:08,396 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60329 - "DELETE /api/treatments/health/e0b4cb76-4432-44e1-b451-f3db5dda288c HTTP/1.1" 200 OK
2026-09-16 23:58:08,430 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:08,431 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:08,431 INFO sqlalchemy.engine.Engine [cached since 67.09s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:08,438 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:08,439 INFO sqlalchemy.engine.Engine [cached since 2.783s ago] {}
2026-09-16 23:58:08,443 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:08,445 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:08,453 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:08,456 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
INFO:     127.0.0.1:60336 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:08,458 INFO sqlalchemy.engine.Engine [cached since 67.11s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:08,458 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:08,460 INFO sqlalchemy.engine.Engine [cached since 67.11s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:08,464 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:08,465 INFO sqlalchemy.engine.Engine [cached since 2.804s ago] {}
2026-09-16 23:58:08,468 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60337 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:08,473 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:08,474 INFO sqlalchemy.engine.Engine [cached since 14.66s ago] {}
2026-09-16 23:58:08,481 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60338 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:09,460 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:09,465 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:09,466 INFO sqlalchemy.engine.Engine [cached since 68.12s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:09,468 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records 
WHERE health_records.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:09,469 INFO sqlalchemy.engine.Engine [cached since 1.084s ago] {'id_1': 'a63c29b9-aabb-4d0f-bf44-234896a0891f', 'param_1': 1}
2026-09-16 23:58:09,470 INFO sqlalchemy.engine.Engine DELETE FROM health_records WHERE health_records.id = %(id)s
2026-09-16 23:58:09,471 INFO sqlalchemy.engine.Engine [cached since 1.082s ago] {'id': 'a63c29b9-aabb-4d0f-bf44-234896a0891f'}
2026-09-16 23:58:09,472 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60342 - "DELETE /api/treatments/health/a63c29b9-aabb-4d0f-bf44-234896a0891f HTTP/1.1" 200 OK
2026-09-16 23:58:09,499 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:09,501 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:09,502 INFO sqlalchemy.engine.Engine [cached since 68.16s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:09,509 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:09,508 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:09,524 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:09,526 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:09,530 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:09,531 INFO sqlalchemy.engine.Engine [cached since 68.18s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:09,534 INFO sqlalchemy.engine.Engine [cached since 3.879s ago] {}
2026-09-16 23:58:09,536 INFO sqlalchemy.engine.Engine [cached since 68.19s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:09,540 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:09,546 INFO sqlalchemy.engine.Engine [cached since 3.885s ago] {}
2026-09-16 23:58:09,561 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:09,562 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:09,563 INFO sqlalchemy.engine.Engine [cached since 15.75s ago] {}
INFO:     127.0.0.1:60348 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:09,567 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60350 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:09,576 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60351 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:10,527 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:10,531 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:10,532 INFO sqlalchemy.engine.Engine [cached since 69.19s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:10,534 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records 
WHERE health_records.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:10,535 INFO sqlalchemy.engine.Engine [cached since 2.15s ago] {'id_1': '02a17a6d-bde6-4d31-b8cc-50d143921870', 'param_1': 1}
2026-09-16 23:58:10,537 INFO sqlalchemy.engine.Engine DELETE FROM health_records WHERE health_records.id = %(id)s
2026-09-16 23:58:10,537 INFO sqlalchemy.engine.Engine [cached since 2.149s ago] {'id': '02a17a6d-bde6-4d31-b8cc-50d143921870'}
2026-09-16 23:58:10,538 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60354 - "DELETE /api/treatments/health/02a17a6d-bde6-4d31-b8cc-50d143921870 HTTP/1.1" 200 OK
2026-09-16 23:58:10,567 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:10,568 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:10,570 INFO sqlalchemy.engine.Engine [cached since 69.22s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:10,570 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:10,569 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:10,572 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:10,571 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:10,573 INFO sqlalchemy.engine.Engine [cached since 69.23s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:10,573 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:10,572 INFO sqlalchemy.engine.Engine [cached since 69.23s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:10,574 INFO sqlalchemy.engine.Engine [cached since 4.919s ago] {}
2026-09-16 23:58:10,577 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:10,578 INFO sqlalchemy.engine.Engine [cached since 16.76s ago] {}
2026-09-16 23:58:10,577 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:10,579 INFO sqlalchemy.engine.Engine [cached since 4.918s ago] {}
2026-09-16 23:58:10,579 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60361 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:10,586 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:10,588 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60363 - "GET /api/production/batches HTTP/1.1" 200 OK
INFO:     127.0.0.1:60362 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:11,055 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,060 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,060 INFO sqlalchemy.engine.Engine [cached since 69.71s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,063 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records 
WHERE health_records.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,064 INFO sqlalchemy.engine.Engine [cached since 2.679s ago] {'id_1': 'ba323580-961b-416f-b5cd-fa25cbc2730e', 'param_1': 1}
2026-09-16 23:58:11,066 INFO sqlalchemy.engine.Engine DELETE FROM health_records WHERE health_records.id = %(id)s
2026-09-16 23:58:11,066 INFO sqlalchemy.engine.Engine [cached since 2.678s ago] {'id': 'ba323580-961b-416f-b5cd-fa25cbc2730e'}
2026-09-16 23:58:11,067 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60366 - "DELETE /api/treatments/health/ba323580-961b-416f-b5cd-fa25cbc2730e HTTP/1.1" 200 OK
2026-09-16 23:58:11,093 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,094 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,094 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,096 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,096 INFO sqlalchemy.engine.Engine [cached since 69.75s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,095 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,095 INFO sqlalchemy.engine.Engine [cached since 69.75s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,097 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,099 INFO sqlalchemy.engine.Engine [cached since 69.75s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,100 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:11,101 INFO sqlalchemy.engine.Engine [cached since 5.44s ago] {}
2026-09-16 23:58:11,103 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:11,105 INFO sqlalchemy.engine.Engine [cached since 5.449s ago] {}
2026-09-16 23:58:11,104 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:11,106 INFO sqlalchemy.engine.Engine [cached since 17.29s ago] {}
2026-09-16 23:58:11,107 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:11,107 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60374 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
INFO:     127.0.0.1:60373 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:11,119 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60375 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:11,446 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,453 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,454 INFO sqlalchemy.engine.Engine [cached since 70.11s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,467 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records 
WHERE health_records.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,467 INFO sqlalchemy.engine.Engine [cached since 3.082s ago] {'id_1': 'a1e989ef-54ea-4c7d-aa48-ed1e12a47481', 'param_1': 1}
2026-09-16 23:58:11,471 INFO sqlalchemy.engine.Engine DELETE FROM health_records WHERE health_records.id = %(id)s
2026-09-16 23:58:11,472 INFO sqlalchemy.engine.Engine [cached since 3.084s ago] {'id': 'a1e989ef-54ea-4c7d-aa48-ed1e12a47481'}
2026-09-16 23:58:11,474 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60378 - "DELETE /api/treatments/health/a1e989ef-54ea-4c7d-aa48-ed1e12a47481 HTTP/1.1" 200 OK
2026-09-16 23:58:11,537 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,541 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,541 INFO sqlalchemy.engine.Engine [cached since 70.2s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,568 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:11,569 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,572 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,571 INFO sqlalchemy.engine.Engine [cached since 5.915s ago] {}
2026-09-16 23:58:11,571 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,573 INFO sqlalchemy.engine.Engine [cached since 70.23s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,574 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,580 INFO sqlalchemy.engine.Engine [cached since 70.23s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,577 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:11,584 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:11,585 INFO sqlalchemy.engine.Engine [cached since 5.924s ago] {}
INFO:     127.0.0.1:60381 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:11,586 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:11,587 INFO sqlalchemy.engine.Engine [cached since 17.77s ago] {}
2026-09-16 23:58:11,590 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60384 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:11,595 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60387 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:11,785 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,786 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,786 INFO sqlalchemy.engine.Engine [cached since 70.44s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,788 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records 
WHERE health_records.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,789 INFO sqlalchemy.engine.Engine [cached since 3.404s ago] {'id_1': '4815c3d0-d9aa-4578-97df-1ff46a405bc1', 'param_1': 1}
2026-09-16 23:58:11,790 INFO sqlalchemy.engine.Engine DELETE FROM health_records WHERE health_records.id = %(id)s
2026-09-16 23:58:11,791 INFO sqlalchemy.engine.Engine [cached since 3.402s ago] {'id': '4815c3d0-d9aa-4578-97df-1ff46a405bc1'}
2026-09-16 23:58:11,792 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60390 - "DELETE /api/treatments/health/4815c3d0-d9aa-4578-97df-1ff46a405bc1 HTTP/1.1" 200 OK
2026-09-16 23:58:11,814 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,816 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,817 INFO sqlalchemy.engine.Engine [cached since 70.47s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,818 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,821 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,819 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:11,822 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:11,821 INFO sqlalchemy.engine.Engine [cached since 70.48s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,823 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:11,824 INFO sqlalchemy.engine.Engine [cached since 6.169s ago] {}
2026-09-16 23:58:11,823 INFO sqlalchemy.engine.Engine [cached since 70.48s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:11,827 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:11,828 INFO sqlalchemy.engine.Engine [cached since 18.01s ago] {}
2026-09-16 23:58:11,828 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:11,830 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
INFO:     127.0.0.1:60395 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:11,831 INFO sqlalchemy.engine.Engine [cached since 6.17s ago] {}
2026-09-16 23:58:11,837 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:11,837 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60399 - "GET /api/production/batches HTTP/1.1" 200 OK
INFO:     127.0.0.1:60398 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:15,864 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:15,868 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:15,869 INFO sqlalchemy.engine.Engine [cached since 74.52s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:15,872 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records 
WHERE disease_pest_records.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:15,873 INFO sqlalchemy.engine.Engine [generated in 0.00059s] {'id_1': '6d0922f8-cd06-4b58-ad9d-97802ac193c3', 'param_1': 1}
2026-09-16 23:58:15,876 INFO sqlalchemy.engine.Engine DELETE FROM disease_pest_records WHERE disease_pest_records.id = %(id)s
2026-09-16 23:58:15,876 INFO sqlalchemy.engine.Engine [generated in 0.00057s] {'id': '6d0922f8-cd06-4b58-ad9d-97802ac193c3'}
2026-09-16 23:58:15,877 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60402 - "DELETE /api/treatments/disease-pest/6d0922f8-cd06-4b58-ad9d-97802ac193c3 HTTP/1.1" 200 OK
2026-09-16 23:58:15,898 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:15,899 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:15,900 INFO sqlalchemy.engine.Engine [cached since 74.55s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:15,907 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:15,909 INFO sqlalchemy.engine.Engine [cached since 10.25s ago] {}
2026-09-16 23:58:15,910 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:15,908 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:15,911 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:15,911 INFO sqlalchemy.engine.Engine [cached since 74.57s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:15,910 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:15,913 INFO sqlalchemy.engine.Engine [cached since 74.57s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:15,912 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:15,915 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:15,917 INFO sqlalchemy.engine.Engine [cached since 10.26s ago] {}
INFO:     127.0.0.1:60407 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:15,919 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:15,921 INFO sqlalchemy.engine.Engine [cached since 22.11s ago] {}
2026-09-16 23:58:15,922 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60410 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:15,929 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60411 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:17,723 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:17,724 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:17,726 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:17,728 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:17,729 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:17,730 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:17,730 INFO sqlalchemy.engine.Engine [cached since 76.38s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:17,731 INFO sqlalchemy.engine.Engine [cached since 76.39s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:17,732 INFO sqlalchemy.engine.Engine [cached since 76.39s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:17,741 INFO sqlalchemy.engine.Engine SELECT treatments.id AS treatments_id, treatments.treatment_number AS treatments_treatment_number, treatments.batch_id AS treatments_batch_id, treatments.variety_id AS treatments_variety_id, treatments.block_bed AS treatments_block_bed, treatments.treatment_type AS treatments_treatment_type, treatments.treatment_date AS treatments_treatment_date, treatments.treatment_time AS treatments_treatment_time, treatments.growth_stage AS treatments_growth_stage, treatments.employee_id AS treatments_employee_id, treatments.status AS treatments_status, treatments.notes AS treatments_notes, treatments.cost AS treatments_cost, treatments.created_by AS treatments_created_by, treatments.created_at AS treatments_created_at, treatments.updated_at AS treatments_updated_at 
FROM treatments ORDER BY treatments.treatment_date DESC
2026-09-16 23:58:17,742 INFO sqlalchemy.engine.Engine [cached since 23.92s ago] {}
2026-09-16 23:58:17,743 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:17,742 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:17,745 INFO sqlalchemy.engine.Engine [cached since 23.93s ago] {}
2026-09-16 23:58:17,744 INFO sqlalchemy.engine.Engine [cached since 23.91s ago] {}
2026-09-16 23:58:17,746 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60418 - "GET /api/treatments HTTP/1.1" 200 OK
2026-09-16 23:58:17,757 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:17,757 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60420 - "GET /api/employees HTTP/1.1" 200 OK
INFO:     127.0.0.1:60419 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:17,771 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:17,772 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:17,774 INFO sqlalchemy.engine.Engine [cached since 76.43s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:17,781 INFO sqlalchemy.engine.Engine SELECT treatments.id AS treatments_id, treatments.treatment_number AS treatments_treatment_number, treatments.batch_id AS treatments_batch_id, treatments.variety_id AS treatments_variety_id, treatments.block_bed AS treatments_block_bed, treatments.treatment_type AS treatments_treatment_type, treatments.treatment_date AS treatments_treatment_date, treatments.treatment_time AS treatments_treatment_time, treatments.growth_stage AS treatments_growth_stage, treatments.employee_id AS treatments_employee_id, treatments.status AS treatments_status, treatments.notes AS treatments_notes, treatments.cost AS treatments_cost, treatments.created_by AS treatments_created_by, treatments.created_at AS treatments_created_at, treatments.updated_at AS treatments_updated_at 
FROM treatments ORDER BY treatments.treatment_date DESC
2026-09-16 23:58:17,785 INFO sqlalchemy.engine.Engine [cached since 23.96s ago] {}
2026-09-16 23:58:17,788 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:17,789 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:17,790 INFO sqlalchemy.engine.Engine [cached since 76.44s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:17,791 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60423 - "GET /api/treatments HTTP/1.1" 200 OK
2026-09-16 23:58:17,797 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:17,797 INFO sqlalchemy.engine.Engine [cached since 23.96s ago] {}
2026-09-16 23:58:17,804 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60426 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:58:17,813 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:17,814 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:17,814 INFO sqlalchemy.engine.Engine [cached since 76.47s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:17,820 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:17,821 INFO sqlalchemy.engine.Engine [cached since 24.01s ago] {}
2026-09-16 23:58:17,827 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60429 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:22,951 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:22,956 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:22,957 INFO sqlalchemy.engine.Engine [cached since 81.61s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:22,960 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:22,962 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:22,962 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:22,965 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:22,964 INFO sqlalchemy.engine.Engine [cached since 81.62s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:22,964 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:22,967 INFO sqlalchemy.engine.Engine [cached since 81.62s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:22,969 INFO sqlalchemy.engine.Engine [cached since 17.31s ago] {}
2026-09-16 23:58:22,975 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:22,972 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:22,976 INFO sqlalchemy.engine.Engine [cached since 17.31s ago] {}
2026-09-16 23:58:22,975 INFO sqlalchemy.engine.Engine [cached since 29.16s ago] {}
2026-09-16 23:58:22,975 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60434 - "GET /api/treatments/health HTTP/1.1" 200 OK
2026-09-16 23:58:22,980 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60438 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:22,987 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60439 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:23,015 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:23,022 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:23,025 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:23,028 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:23,031 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:23,034 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:23,044 INFO sqlalchemy.engine.Engine [cached since 81.7s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:23,046 INFO sqlalchemy.engine.Engine [cached since 81.7s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:23,047 INFO sqlalchemy.engine.Engine [cached since 81.7s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:23,053 INFO sqlalchemy.engine.Engine SELECT disease_pest_records.id AS disease_pest_records_id, disease_pest_records.batch_id AS disease_pest_records_batch_id, disease_pest_records.record_date AS disease_pest_records_record_date, disease_pest_records.name AS disease_pest_records_name, disease_pest_records.type AS disease_pest_records_type, disease_pest_records.severity AS disease_pest_records_severity, disease_pest_records.symptoms AS disease_pest_records_symptoms, disease_pest_records.treatment_applied AS disease_pest_records_treatment_applied, disease_pest_records.product_used AS disease_pest_records_product_used, disease_pest_records.follow_up_date AS disease_pest_records_follow_up_date, disease_pest_records.before_photo AS disease_pest_records_before_photo, disease_pest_records.after_photo AS disease_pest_records_after_photo, disease_pest_records.status AS disease_pest_records_status, disease_pest_records.recorded_by AS disease_pest_records_recorded_by, disease_pest_records.created_at AS disease_pest_records_created_at 
FROM disease_pest_records ORDER BY disease_pest_records.record_date DESC
2026-09-16 23:58:23,055 INFO sqlalchemy.engine.Engine SELECT health_records.id AS health_records_id, health_records.batch_id AS health_records_batch_id, health_records.record_date AS health_records_record_date, health_records.plant_height_cm AS health_records_plant_height_cm, health_records.leaf_count AS health_records_leaf_count, health_records.stem_thickness_mm AS health_records_stem_thickness_mm, health_records.plant_color AS health_records_plant_color, health_records.root_status AS health_records_root_status, health_records.moisture_level AS health_records_moisture_level, health_records.health_score AS health_records_health_score, health_records.mortality_rate AS health_records_mortality_rate, health_records.notes AS health_records_notes, health_records.recorded_by AS health_records_recorded_by, health_records.created_at AS health_records_created_at 
FROM health_records ORDER BY health_records.record_date DESC
2026-09-16 23:58:23,058 INFO sqlalchemy.engine.Engine [cached since 17.4s ago] {}
2026-09-16 23:58:23,057 INFO sqlalchemy.engine.Engine [cached since 17.4s ago] {}
2026-09-16 23:58:23,060 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:23,063 INFO sqlalchemy.engine.Engine [cached since 29.25s ago] {}
2026-09-16 23:58:23,062 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:23,064 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60446 - "GET /api/treatments/health HTTP/1.1" 200 OK
INFO:     127.0.0.1:60447 - "GET /api/treatments/disease-pest HTTP/1.1" 200 OK
2026-09-16 23:58:23,074 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60448 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:24,182 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:24,186 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:24,187 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:24,188 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:24,190 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:24,192 INFO sqlalchemy.engine.Engine [cached since 82.85s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:24,192 INFO sqlalchemy.engine.Engine [cached since 82.85s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:24,191 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:24,195 INFO sqlalchemy.engine.Engine [cached since 82.85s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:24,201 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:24,206 INFO sqlalchemy.engine.Engine [cached since 30.39s ago] {}
2026-09-16 23:58:24,209 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true AND treatment_schedules.next_due_date <= %(next_due_date_1)s ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:24,206 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:24,212 INFO sqlalchemy.engine.Engine [generated in 0.00578s] {}
2026-09-16 23:58:24,211 INFO sqlalchemy.engine.Engine [generated in 0.00173s] {'next_due_date_1': datetime.date(2026, 9, 16)}
2026-09-16 23:58:24,218 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60460 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:24,224 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:24,225 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60457 - "GET /api/treatments/schedules?is_active=true HTTP/1.1" 200 OK
INFO:     127.0.0.1:60459 - "GET /api/treatments/schedules/due HTTP/1.1" 200 OK
2026-09-16 23:58:24,247 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:24,248 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:24,251 INFO sqlalchemy.engine.Engine [cached since 82.91s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:24,253 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:24,254 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:24,255 INFO sqlalchemy.engine.Engine [cached since 82.91s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:24,257 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:24,258 INFO sqlalchemy.engine.Engine [cached since 30.44s ago] {}
2026-09-16 23:58:24,261 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:24,263 INFO sqlalchemy.engine.Engine [cached since 0.05716s ago] {}
2026-09-16 23:58:24,274 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:24,274 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:24,276 INFO sqlalchemy.engine.Engine BEGIN (implicit)
INFO:     127.0.0.1:60468 - "GET /api/treatments/schedules?is_active=true HTTP/1.1" 200 OK
2026-09-16 23:58:24,277 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:24,278 INFO sqlalchemy.engine.Engine [cached since 82.93s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
INFO:     127.0.0.1:60467 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:24,283 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true AND treatment_schedules.next_due_date <= %(next_due_date_1)s ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:24,284 INFO sqlalchemy.engine.Engine [cached since 0.07519s ago] {'next_due_date_1': datetime.date(2026, 9, 16)}
2026-09-16 23:58:24,288 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60471 - "GET /api/treatments/schedules/due HTTP/1.1" 200 OK
2026-09-16 23:58:24,330 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:24,331 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:24,332 INFO sqlalchemy.engine.Engine [cached since 82.99s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:24,348 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:24,348 INFO sqlalchemy.engine.Engine [cached since 30.51s ago] {}
2026-09-16 23:58:24,360 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60461 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:58:24,376 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:24,377 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:24,378 INFO sqlalchemy.engine.Engine [cached since 83.03s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:24,382 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:24,383 INFO sqlalchemy.engine.Engine [cached since 30.55s ago] {}
2026-09-16 23:58:24,387 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60474 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:58:28,981 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:28,986 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:28,986 INFO sqlalchemy.engine.Engine [cached since 87.64s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:28,996 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:28,996 INFO sqlalchemy.engine.Engine [generated in 0.00069s] {'id_1': 'd4a76486-b9e5-40ab-a743-277228c22180', 'param_1': 1}
2026-09-16 23:58:29,006 INFO sqlalchemy.engine.Engine UPDATE treatment_schedules SET is_active=%(is_active)s, updated_at=now() WHERE treatment_schedules.id = %(treatment_schedules_id)s
2026-09-16 23:58:29,007 INFO sqlalchemy.engine.Engine [generated in 0.00077s] {'is_active': False, 'treatment_schedules_id': 'd4a76486-b9e5-40ab-a743-277228c22180'}
2026-09-16 23:58:29,012 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60478 - "PUT /api/treatments/schedules/d4a76486-b9e5-40ab-a743-277228c22180 HTTP/1.1" 200 OK
2026-09-16 23:58:29,041 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:29,043 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:29,043 INFO sqlalchemy.engine.Engine [cached since 87.7s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:29,054 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:29,055 INFO sqlalchemy.engine.Engine [cached since 4.849s ago] {}
2026-09-16 23:58:29,057 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:29,058 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:29,061 INFO sqlalchemy.engine.Engine [cached since 87.72s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:29,062 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:29,061 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:29,064 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:29,065 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:29,066 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:29,068 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true AND treatment_schedules.next_due_date <= %(next_due_date_1)s ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:29,069 INFO sqlalchemy.engine.Engine [cached since 87.72s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
INFO:     127.0.0.1:60484 - "GET /api/treatments/schedules?is_active=true HTTP/1.1" 200 OK
2026-09-16 23:58:29,070 INFO sqlalchemy.engine.Engine [cached since 87.72s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:29,071 INFO sqlalchemy.engine.Engine [cached since 4.862s ago] {'next_due_date_1': datetime.date(2026, 9, 16)}
2026-09-16 23:58:29,077 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:29,079 INFO sqlalchemy.engine.Engine [cached since 35.24s ago] {}
2026-09-16 23:58:29,078 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:29,080 INFO sqlalchemy.engine.Engine [cached since 35.27s ago] {}
2026-09-16 23:58:29,087 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:29,090 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60487 - "GET /api/treatments/schedules/due HTTP/1.1" 200 OK
INFO:     127.0.0.1:60490 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:58:29,095 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60489 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:30,904 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:30,908 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:30,909 INFO sqlalchemy.engine.Engine [cached since 89.56s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:30,911 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:30,912 INFO sqlalchemy.engine.Engine [cached since 1.916s ago] {'id_1': 'f2f82746-df8a-4bb9-8d2f-1057c820cc3e', 'param_1': 1}
2026-09-16 23:58:30,913 INFO sqlalchemy.engine.Engine UPDATE treatment_schedules SET is_active=%(is_active)s, updated_at=now() WHERE treatment_schedules.id = %(treatment_schedules_id)s
2026-09-16 23:58:30,914 INFO sqlalchemy.engine.Engine [cached since 1.907s ago] {'is_active': False, 'treatment_schedules_id': 'f2f82746-df8a-4bb9-8d2f-1057c820cc3e'}
2026-09-16 23:58:30,915 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60493 - "PUT /api/treatments/schedules/f2f82746-df8a-4bb9-8d2f-1057c820cc3e HTTP/1.1" 200 OK
2026-09-16 23:58:30,941 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:30,942 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:30,943 INFO sqlalchemy.engine.Engine [cached since 89.6s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:30,953 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:30,955 INFO sqlalchemy.engine.Engine [cached since 6.749s ago] {}
2026-09-16 23:58:30,956 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:30,955 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:30,958 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:30,958 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:30,960 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:30,960 INFO sqlalchemy.engine.Engine [cached since 89.61s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:30,961 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:30,961 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:30,962 INFO sqlalchemy.engine.Engine [cached since 89.62s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
INFO:     127.0.0.1:60497 - "GET /api/treatments/schedules?is_active=true HTTP/1.1" 200 OK
2026-09-16 23:58:30,963 INFO sqlalchemy.engine.Engine [cached since 89.62s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:30,969 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:30,971 INFO sqlalchemy.engine.Engine [cached since 37.16s ago] {}
2026-09-16 23:58:30,970 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true AND treatment_schedules.next_due_date <= %(next_due_date_1)s ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:30,976 INFO sqlalchemy.engine.Engine [cached since 6.766s ago] {'next_due_date_1': datetime.date(2026, 9, 16)}
2026-09-16 23:58:30,976 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:30,977 INFO sqlalchemy.engine.Engine [cached since 37.14s ago] {}
2026-09-16 23:58:30,983 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:30,984 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60503 - "GET /api/production/batches HTTP/1.1" 200 OK
INFO:     127.0.0.1:60502 - "GET /api/treatments/schedules/due HTTP/1.1" 200 OK
2026-09-16 23:58:30,991 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60505 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:58:32,859 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:32,863 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:32,864 INFO sqlalchemy.engine.Engine [cached since 91.52s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:32,867 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:32,868 INFO sqlalchemy.engine.Engine [cached since 3.872s ago] {'id_1': '81b0fa4d-3791-4d28-aac0-8ea38b8a4e0b', 'param_1': 1}
2026-09-16 23:58:32,871 INFO sqlalchemy.engine.Engine UPDATE treatment_schedules SET is_active=%(is_active)s, updated_at=now() WHERE treatment_schedules.id = %(treatment_schedules_id)s
2026-09-16 23:58:32,872 INFO sqlalchemy.engine.Engine [cached since 3.865s ago] {'is_active': False, 'treatment_schedules_id': '81b0fa4d-3791-4d28-aac0-8ea38b8a4e0b'}
2026-09-16 23:58:32,873 INFO sqlalchemy.engine.Engine COMMIT
INFO:     127.0.0.1:60508 - "PUT /api/treatments/schedules/81b0fa4d-3791-4d28-aac0-8ea38b8a4e0b HTTP/1.1" 200 OK
2026-09-16 23:58:32,899 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:32,905 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:32,906 INFO sqlalchemy.engine.Engine [cached since 91.56s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:32,910 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:32,911 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:32,910 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:32,913 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:32,912 INFO sqlalchemy.engine.Engine [cached since 91.57s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:32,913 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:32,912 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:32,914 INFO sqlalchemy.engine.Engine [cached since 91.57s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:32,914 INFO sqlalchemy.engine.Engine [cached since 8.709s ago] {}
2026-09-16 23:58:32,915 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:32,918 INFO sqlalchemy.engine.Engine SELECT treatment_schedules.id AS treatment_schedules_id, treatment_schedules.batch_id AS treatment_schedules_batch_id, treatment_schedules.treatment_type AS treatment_schedules_treatment_type, treatment_schedules.frequency_days AS treatment_schedules_frequency_days, treatment_schedules.next_due_date AS treatment_schedules_next_due_date, treatment_schedules.employee_id AS treatment_schedules_employee_id, treatment_schedules.notes AS treatment_schedules_notes, treatment_schedules.is_active AS treatment_schedules_is_active, treatment_schedules.created_by AS treatment_schedules_created_by, treatment_schedules.created_at AS treatment_schedules_created_at, treatment_schedules.updated_at AS treatment_schedules_updated_at 
FROM treatment_schedules 
WHERE treatment_schedules.is_active = true AND treatment_schedules.next_due_date <= %(next_due_date_1)s ORDER BY treatment_schedules.next_due_date
2026-09-16 23:58:32,922 INFO sqlalchemy.engine.Engine [cached since 91.58s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:32,924 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:32,923 INFO sqlalchemy.engine.Engine [cached since 8.714s ago] {'next_due_date_1': datetime.date(2026, 9, 16)}
INFO:     127.0.0.1:60512 - "GET /api/treatments/schedules?is_active=true HTTP/1.1" 200 OK
2026-09-16 23:58:32,923 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:32,928 INFO sqlalchemy.engine.Engine [cached since 39.09s ago] {}
2026-09-16 23:58:32,929 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:32,931 INFO sqlalchemy.engine.Engine [cached since 39.12s ago] {}
2026-09-16 23:58:32,931 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:32,936 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60518 - "GET /api/treatments/schedules/due HTTP/1.1" 200 OK
INFO:     127.0.0.1:60519 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:58:32,945 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60520 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:34,358 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:34,363 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:34,363 INFO sqlalchemy.engine.Engine [cached since 93.02s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:34,367 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:34,369 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:34,370 INFO sqlalchemy.engine.Engine [cached since 93.02s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:34,372 INFO sqlalchemy.engine.Engine SELECT treatments.id AS treatments_id, treatments.treatment_number AS treatments_treatment_number, treatments.batch_id AS treatments_batch_id, treatments.variety_id AS treatments_variety_id, treatments.block_bed AS treatments_block_bed, treatments.treatment_type AS treatments_treatment_type, treatments.treatment_date AS treatments_treatment_date, treatments.treatment_time AS treatments_treatment_time, treatments.growth_stage AS treatments_growth_stage, treatments.employee_id AS treatments_employee_id, treatments.status AS treatments_status, treatments.notes AS treatments_notes, treatments.cost AS treatments_cost, treatments.created_by AS treatments_created_by, treatments.created_at AS treatments_created_at, treatments.updated_at AS treatments_updated_at 
FROM treatments
2026-09-16 23:58:34,373 INFO sqlalchemy.engine.Engine [generated in 0.00077s] {}
2026-09-16 23:58:34,375 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:34,376 INFO sqlalchemy.engine.Engine [cached since 40.56s ago] {}
2026-09-16 23:58:34,383 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:34,387 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60523 - "GET /api/treatments/analytics/summary HTTP/1.1" 200 OK
INFO:     127.0.0.1:60526 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:34,404 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:34,406 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:34,406 INFO sqlalchemy.engine.Engine [cached since 93.06s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:34,410 INFO sqlalchemy.engine.Engine SELECT treatments.id AS treatments_id, treatments.treatment_number AS treatments_treatment_number, treatments.batch_id AS treatments_batch_id, treatments.variety_id AS treatments_variety_id, treatments.block_bed AS treatments_block_bed, treatments.treatment_type AS treatments_treatment_type, treatments.treatment_date AS treatments_treatment_date, treatments.treatment_time AS treatments_treatment_time, treatments.growth_stage AS treatments_growth_stage, treatments.employee_id AS treatments_employee_id, treatments.status AS treatments_status, treatments.notes AS treatments_notes, treatments.cost AS treatments_cost, treatments.created_by AS treatments_created_by, treatments.created_at AS treatments_created_at, treatments.updated_at AS treatments_updated_at 
FROM treatments
2026-09-16 23:58:34,411 INFO sqlalchemy.engine.Engine [cached since 0.03882s ago] {}
2026-09-16 23:58:34,414 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60529 - "GET /api/treatments/analytics/summary HTTP/1.1" 200 OK
2026-09-16 23:58:34,422 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:34,423 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:34,424 INFO sqlalchemy.engine.Engine [cached since 93.08s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:34,428 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:34,429 INFO sqlalchemy.engine.Engine [cached since 40.61s ago] {}
2026-09-16 23:58:34,439 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60532 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:38,198 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:38,204 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:38,205 INFO sqlalchemy.engine.Engine [cached since 96.86s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:38,208 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:38,210 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:38,209 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:38,211 INFO sqlalchemy.engine.Engine [cached since 96.87s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:38,212 INFO sqlalchemy.engine.Engine SELECT treatments.id AS treatments_id, treatments.treatment_number AS treatments_treatment_number, treatments.batch_id AS treatments_batch_id, treatments.variety_id AS treatments_variety_id, treatments.block_bed AS treatments_block_bed, treatments.treatment_type AS treatments_treatment_type, treatments.treatment_date AS treatments_treatment_date, treatments.treatment_time AS treatments_treatment_time, treatments.growth_stage AS treatments_growth_stage, treatments.employee_id AS treatments_employee_id, treatments.status AS treatments_status, treatments.notes AS treatments_notes, treatments.cost AS treatments_cost, treatments.created_by AS treatments_created_by, treatments.created_at AS treatments_created_at, treatments.updated_at AS treatments_updated_at 
FROM treatments ORDER BY treatments.treatment_date DESC
2026-09-16 23:58:38,214 INFO sqlalchemy.engine.Engine [cached since 44.39s ago] {}
2026-09-16 23:58:38,212 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:38,215 INFO sqlalchemy.engine.Engine [cached since 96.87s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:38,218 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:38,219 INFO sqlalchemy.engine.Engine [cached since 44.4s ago] {}
2026-09-16 23:58:38,220 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:38,225 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:38,225 INFO sqlalchemy.engine.Engine [cached since 44.39s ago] {}
INFO:     127.0.0.1:60537 - "GET /api/treatments HTTP/1.1" 200 OK
2026-09-16 23:58:38,232 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-16 23:58:38,235 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60540 - "GET /api/production/batches HTTP/1.1" 200 OK
INFO:     127.0.0.1:60541 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-16 23:58:38,245 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:38,246 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:38,246 INFO sqlalchemy.engine.Engine [cached since 96.9s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:38,253 INFO sqlalchemy.engine.Engine SELECT treatments.id AS treatments_id, treatments.treatment_number AS treatments_treatment_number, treatments.batch_id AS treatments_batch_id, treatments.variety_id AS treatments_variety_id, treatments.block_bed AS treatments_block_bed, treatments.treatment_type AS treatments_treatment_type, treatments.treatment_date AS treatments_treatment_date, treatments.treatment_time AS treatments_treatment_time, treatments.growth_stage AS treatments_growth_stage, treatments.employee_id AS treatments_employee_id, treatments.status AS treatments_status, treatments.notes AS treatments_notes, treatments.cost AS treatments_cost, treatments.created_by AS treatments_created_by, treatments.created_at AS treatments_created_at, treatments.updated_at AS treatments_updated_at 
FROM treatments ORDER BY treatments.treatment_date DESC
2026-09-16 23:58:38,254 INFO sqlalchemy.engine.Engine [cached since 44.43s ago] {}
2026-09-16 23:58:38,275 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:38,276 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:38,279 INFO sqlalchemy.engine.Engine [cached since 96.93s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:38,281 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60544 - "GET /api/treatments HTTP/1.1" 200 OK
2026-09-16 23:58:38,279 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-16 23:58:38,293 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-16 23:58:38,292 INFO sqlalchemy.engine.Engine SELECT production_batches.id AS production_batches_id, production_batches.batch_number AS production_batches_batch_number, production_batches.plant_id AS production_batches_plant_id, production_batches.seed_lot_id AS production_batches_seed_lot_id, production_batches.sowing_date AS production_batches_sowing_date, production_batches.expected_ready_date AS production_batches_expected_ready_date, production_batches.sown_quantity AS production_batches_sown_quantity, production_batches.current_quantity AS production_batches_current_quantity, production_batches.status AS production_batches_status, production_batches.tray_number AS production_batches_tray_number, production_batches.location AS production_batches_location, production_batches.employee_id AS production_batches_employee_id, production_batches.branch_id AS production_batches_branch_id, production_batches.notes AS production_batches_notes, production_batches.created_at AS production_batches_created_at, production_batches.updated_at AS production_batches_updated_at 
FROM production_batches ORDER BY production_batches.created_at DESC
2026-09-16 23:58:38,294 INFO sqlalchemy.engine.Engine [cached since 44.48s ago] {}
2026-09-16 23:58:38,293 INFO sqlalchemy.engine.Engine [cached since 96.95s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-16 23:58:38,304 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60548 - "GET /api/production/batches HTTP/1.1" 200 OK
2026-09-16 23:58:38,310 INFO sqlalchemy.engine.Engine SELECT employees.id AS employees_id, employees.code AS employees_code, employees.name AS employees_name, employees.phone AS employees_phone, employees.email AS employees_email, employees.role AS employees_role, employees.department AS employees_department, employees.salary AS employees_salary, employees.joining_date AS employees_joining_date, employees.is_active AS employees_is_active, employees.created_at AS employees_created_at, employees.updated_at AS employees_updated_at 
FROM employees ORDER BY employees.name
2026-09-16 23:58:38,310 INFO sqlalchemy.engine.Engine [cached since 44.47s ago] {}
2026-09-16 23:58:38,315 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60550 - "GET /api/employees HTTP/1.1" 200 OK
2026-09-17 00:13:48,205 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-17 00:13:48,210 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-17 00:13:48,211 INFO sqlalchemy.engine.Engine [cached since 1007s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-17 00:13:48,220 INFO sqlalchemy.engine.Engine SELECT plant_categories.id AS plant_categories_id, plant_categories.name AS plant_categories_name, plant_categories.description AS plant_categories_description, plant_categories.icon AS plant_categories_icon, plant_categories.created_at AS plant_categories_created_at 
FROM plant_categories ORDER BY plant_categories.name
2026-09-17 00:13:48,221 INFO sqlalchemy.engine.Engine [generated in 0.00123s] {}
2026-09-17 00:13:48,234 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60699 - "GET /api/plants/categories HTTP/1.1" 200 OK
2026-09-17 00:13:48,253 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-17 00:13:48,254 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-17 00:13:48,255 INFO sqlalchemy.engine.Engine [cached since 1007s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-17 00:13:48,258 INFO sqlalchemy.engine.Engine SELECT plant_categories.id AS plant_categories_id, plant_categories.name AS plant_categories_name, plant_categories.description AS plant_categories_description, plant_categories.icon AS plant_categories_icon, plant_categories.created_at AS plant_categories_created_at 
FROM plant_categories ORDER BY plant_categories.name
2026-09-17 00:13:48,259 INFO sqlalchemy.engine.Engine [cached since 0.03895s ago] {}
2026-09-17 00:13:48,271 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60702 - "GET /api/plants/categories HTTP/1.1" 200 OK
2026-09-17 00:14:01,213 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-17 00:14:01,215 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-17 00:14:01,220 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-17 00:14:01,218 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-17 00:14:01,222 INFO sqlalchemy.engine.Engine [cached since 1020s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-17 00:14:01,221 INFO sqlalchemy.engine.Engine [cached since 1020s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-17 00:14:01,230 INFO sqlalchemy.engine.Engine SELECT plant_varieties.id AS plant_varieties_id, plant_varieties.name AS plant_varieties_name, plant_varieties.category_id AS plant_varieties_category_id, plant_varieties.plant_type AS plant_varieties_plant_type, plant_varieties.life_cycle AS plant_varieties_life_cycle, plant_varieties.growing_season AS plant_varieties_growing_season, plant_varieties.sunlight AS plant_varieties_sunlight, plant_varieties.water_requirement AS plant_varieties_water_requirement, plant_varieties.soil_type AS plant_varieties_soil_type, plant_varieties.created_at AS plant_varieties_created_at 
FROM plant_varieties ORDER BY plant_varieties.name
2026-09-17 00:14:01,231 INFO sqlalchemy.engine.Engine [generated in 0.00121s] {}
2026-09-17 00:14:01,231 INFO sqlalchemy.engine.Engine SELECT plant_categories.id AS plant_categories_id, plant_categories.name AS plant_categories_name, plant_categories.description AS plant_categories_description, plant_categories.icon AS plant_categories_icon, plant_categories.created_at AS plant_categories_created_at 
FROM plant_categories ORDER BY plant_categories.name
2026-09-17 00:14:01,232 INFO sqlalchemy.engine.Engine [cached since 13.01s ago] {}
2026-09-17 00:14:01,245 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-17 00:14:01,246 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60711 - "GET /api/plants/varieties HTTP/1.1" 200 OK
INFO:     127.0.0.1:60712 - "GET /api/plants/categories HTTP/1.1" 200 OK
2026-09-17 00:14:01,270 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-17 00:14:01,271 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-17 00:14:01,272 INFO sqlalchemy.engine.Engine [cached since 1020s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-17 00:14:01,274 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-09-17 00:14:01,277 INFO sqlalchemy.engine.Engine SELECT users.id AS users_id, users.username AS users_username, users.email AS users_email, users.password_hash AS users_password_hash, users.full_name AS users_full_name, users.phone AS users_phone, users.is_active AS users_is_active, users.branch_id AS users_branch_id, users.created_at AS users_created_at, users.updated_at AS users_updated_at 
FROM users 
WHERE users.id = %(id_1)s 
 LIMIT %(param_1)s
2026-09-17 00:14:01,276 INFO sqlalchemy.engine.Engine SELECT plant_varieties.id AS plant_varieties_id, plant_varieties.name AS plant_varieties_name, plant_varieties.category_id AS plant_varieties_category_id, plant_varieties.plant_type AS plant_varieties_plant_type, plant_varieties.life_cycle AS plant_varieties_life_cycle, plant_varieties.growing_season AS plant_varieties_growing_season, plant_varieties.sunlight AS plant_varieties_sunlight, plant_varieties.water_requirement AS plant_varieties_water_requirement, plant_varieties.soil_type AS plant_varieties_soil_type, plant_varieties.created_at AS plant_varieties_created_at 
FROM plant_varieties ORDER BY plant_varieties.name
2026-09-17 00:14:01,279 INFO sqlalchemy.engine.Engine [cached since 0.04941s ago] {}
2026-09-17 00:14:01,278 INFO sqlalchemy.engine.Engine [cached since 1020s ago] {'id_1': '98e15e41-491d-4802-9e57-5da8a5e49dd8', 'param_1': 1}
2026-09-17 00:14:01,288 INFO sqlalchemy.engine.Engine ROLLBACK
2026-09-17 00:14:01,289 INFO sqlalchemy.engine.Engine SELECT plant_categories.id AS plant_categories_id, plant_categories.name AS plant_categories_name, plant_categories.description AS plant_categories_description, plant_categories.icon AS plant_categories_icon, plant_categories.created_at AS plant_categories_created_at 
FROM plant_categories ORDER BY plant_categories.name
2026-09-17 00:14:01,290 INFO sqlalchemy.engine.Engine [cached since 13.07s ago] {}
INFO:     127.0.0.1:60716 - "GET /api/plants/varieties HTTP/1.1" 200 OK
2026-09-17 00:14:01,294 INFO sqlalchemy.engine.Engine ROLLBACK
INFO:     127.0.0.1:60718 - "GET /api/plants/categories HTTP/1.1" 200 OK
