#!/usr/bin/env python # -*- coding: utf-8 -*- """Create sample todo data for testing""" import os import sys from dotenv import load_dotenv import pymysql from datetime import datetime, timedelta import uuid # Load environment variables load_dotenv() def create_sample_todos(): """Create sample todo items for testing""" print("=" * 60) print("Creating Sample Todo Data") print("=" * 60) db_config = { 'host': os.getenv('MYSQL_HOST', 'mysql.theaken.com'), 'port': int(os.getenv('MYSQL_PORT', 33306)), 'user': os.getenv('MYSQL_USER', 'A060'), 'password': os.getenv('MYSQL_PASSWORD', 'WLeSCi0yhtc7'), 'database': os.getenv('MYSQL_DATABASE', 'db_A060'), 'charset': 'utf8mb4' } try: connection = pymysql.connect(**db_config) cursor = connection.cursor() # Sample todos data sample_todos = [ { 'title': '完成網站改版設計稿', 'description': '設計新版網站的主要頁面布局,包含首頁、產品頁面和聯絡頁面', 'status': 'DOING', 'priority': 'HIGH', 'due_date': (datetime.now() + timedelta(days=7)).date(), 'creator_ad': '92367', 'creator_display_name': 'ymirliu 陸一銘', 'creator_email': 'ymirliu@panjit.com.tw', 'starred': True }, { 'title': '資料庫效能優化', 'description': '優化主要查詢語句,提升系統響應速度', 'status': 'NEW', 'priority': 'URGENT', 'due_date': (datetime.now() + timedelta(days=3)).date(), 'creator_ad': '92367', 'creator_display_name': 'ymirliu 陸一銘', 'creator_email': 'ymirliu@panjit.com.tw', 'starred': False }, { 'title': 'API 文檔更新', 'description': '更新所有 API 介面文檔,補充新增的端點說明', 'status': 'DOING', 'priority': 'MEDIUM', 'due_date': (datetime.now() + timedelta(days=10)).date(), 'creator_ad': 'test', 'creator_display_name': '測試使用者', 'creator_email': 'test@panjit.com.tw', 'starred': False }, { 'title': '使用者測試回饋整理', 'description': '整理上週使用者測試的所有回饋意見,並分類處理', 'status': 'BLOCKED', 'priority': 'LOW', 'due_date': (datetime.now() + timedelta(days=15)).date(), 'creator_ad': 'test', 'creator_display_name': '測試使用者', 'creator_email': 'test@panjit.com.tw', 'starred': True }, { 'title': '系統安全性檢查', 'description': '對系統進行全面的安全性檢查,確保沒有漏洞', 'status': 'NEW', 'priority': 'URGENT', 'due_date': (datetime.now() + timedelta(days=2)).date(), 'creator_ad': '92367', 'creator_display_name': 'ymirliu 陸一銘', 'creator_email': 'ymirliu@panjit.com.tw', 'starred': False } ] created_count = 0 for todo in sample_todos: todo_id = str(uuid.uuid4()) sql = """ INSERT INTO todo_item (id, title, description, status, priority, due_date, created_at, creator_ad, creator_display_name, creator_email, starred) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) """ values = ( todo_id, todo['title'], todo['description'], todo['status'], todo['priority'], todo['due_date'], datetime.now(), todo['creator_ad'], todo['creator_display_name'], todo['creator_email'], todo['starred'] ) cursor.execute(sql, values) created_count += 1 print(f"[OK] Created todo: {todo['title']} (ID: {todo_id[:8]}...)") connection.commit() print(f"\n[SUCCESS] Created {created_count} sample todos successfully!") # Show summary cursor.execute("SELECT COUNT(*) FROM todo_item") total_count = cursor.fetchone()[0] print(f"[INFO] Total todos in database: {total_count}") cursor.close() connection.close() return True except Exception as e: print(f"[ERROR] Failed to create sample data: {str(e)}") return False if __name__ == "__main__": create_sample_todos()