from flask import Flask
import sqlite3
import os
from datetime import datetime

app = Flask(__name__)

DB_FILE = os.path.join(os.path.dirname(__file__), "database.db")

def get_db():
    conn = sqlite3.connect(DB_FILE)
    conn.row_factory = sqlite3.Row
    return conn


# створити базу якщо її нема
if not os.path.exists(DB_FILE):
    conn = sqlite3.connect(DB_FILE)
    conn.execute("""
    CREATE TABLE shift (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        status TEXT,
        open_time TEXT,
        close_time TEXT
    )
    """)
    conn.commit()
    conn.close()


@app.route("/")
def index():
    return "Shift server running"


@app.route("/open_shift")
def open_shift():
    db = get_db()
    db.execute(
        "INSERT INTO shift (status, open_time) VALUES (?, ?)",
        ("open", datetime.now())
    )
    db.commit()
    return "Shift opened"


@app.route("/close_shift")
def close_shift():
    db = get_db()
    db.execute(
        "UPDATE shift SET status=?, close_time=? WHERE status='open'",
        ("closed", datetime.now())
    )
    db.commit()
    return "Shift closed"


@app.route("/status")
def status():
    db = get_db()
    shift = db.execute(
        "SELECT status FROM shift ORDER BY id DESC LIMIT 1"
    ).fetchone()

    if shift:
        return {"status": shift["status"]}
    else:
        return {"status": "no shift"}


application = app