import sqlite3  # SQLite 데이터베이스를 다루기 위한 모듈을 가져온다.
from pathlib import Path  # 파일 경로를 안전하게 계산하기 위한 모듈을 가져온다.

DB_PATH = Path(__file__).resolve().parent / "app.db"  # 현재 파일 기준으로 데이터베이스 파일 경로를 정한다.


def main() -> None:  # 데이터베이스를 초기화하는 메인 함수를 정의한다.
    connection = sqlite3.connect(DB_PATH)  # SQLite 데이터베이스에 연결한다.
    cursor = connection.cursor()  # SQL 실행을 위한 커서를 만든다.
    cursor.execute("CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT NOT NULL)")  # 메시지 테이블이 없으면 생성한다.
    cursor.execute("DELETE FROM messages")  # 예제를 단순하게 유지하기 위해 기존 메시지를 모두 지운다.
    cursor.execute("INSERT INTO messages (content) VALUES (?)", ("hello world",))  # hello world 예제 데이터를 한 건 추가한다.
    connection.commit()  # 변경 내용을 데이터베이스에 저장한다.
    connection.close()  # 데이터베이스 연결을 닫는다.
    print(f"Database initialized at: {DB_PATH}")  # 초기화된 데이터베이스 경로를 출력한다.


if __name__ == "__main__":  # 현재 파일을 직접 실행했을 때만 초기화 함수를 호출한다.
    main()  # 데이터베이스 초기화를 수행한다.
