"""Daily job log management.""" import json, sys, os from datetime import date sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) from lib.db import get_db, new_id, now, row_to_dict, rows_to_list def create(job_id, notes, crew_names=None, hours_worked=None, photos=None): lid = new_id() conn = get_db() conn.execute("""INSERT INTO daily_logs (id, job_id, log_date, crew_names, hours_worked, notes, photos, created_at) VALUES (?,?,?,?,?,?,?,?)""", (lid, job_id, date.today().isoformat(), crew_names, hours_worked or 0, notes, json.dumps(photos) if photos else None, now())) conn.commit(); conn.close() return {"id": lid, "job_id": job_id, "date": date.today().isoformat()} def list_logs(job_id): conn = get_db() rows = conn.execute("SELECT * FROM daily_logs WHERE job_id=? ORDER BY log_date DESC", (job_id,)).fetchall() conn.close() result = rows_to_list(rows) for r in result: r["photos"] = json.loads(r["photos"]) if r["photos"] else [] return {"logs": result} def get_log(log_id): conn = get_db() row = row_to_dict(conn.execute("SELECT * FROM daily_logs WHERE id=?", (log_id,)).fetchone()) conn.close() if not row: return {"error": "log not found"} row["photos"] = json.loads(row["photos"]) if row["photos"] else [] return row if __name__ == "__main__": from lib.db import init_db; init_db() cmd = sys.argv[1] if len(sys.argv) > 1 else "list" if cmd == "create": print(json.dumps(create(sys.argv[2], sys.argv[3], sys.argv[4] if len(sys.argv)>4 else None, float(sys.argv[5]) if len(sys.argv)>5 else None))) elif cmd == "list": print(json.dumps(list_logs(sys.argv[2]), indent=2)) elif cmd == "get": print(json.dumps(get_log(sys.argv[2]), indent=2)) else: print(json.dumps({"error": f"unknown: {cmd}"}))