# 資料儲存服務 ## 說明 * 使用 SQLite 資料庫儲存本地資料,供客戶端離線使用 * 使用 Microsoft.Data.Sqlite 套件 * 支援完整的 CRUD 操作(新增、修改、查詢、刪除) * 支援條件查詢和分頁 * 自動建立資料庫和表格結構 ## 技術規格 * 資料庫檔案位置:DB 資料夾 * 資料庫名稱:data.db * 建立 Classes 資料表 (對應後端 DAC_Classes1.cs 的 ClassesItem) * 建立 SignUps 資料表 (對應後端 DAC_SignUp1.cs 的 SignUpItem) * 建立 BPSN 資料表 (對應後端 DAC_BPSN.cs 的 BPSNItem) * 建立 CheckIn 資料表 ## BPSN 表結構 -- 員工資料 * string BPENO (PK) * string BPNME * string BPAWD * bool Is系統管理群組 * bool Is客戶管理群組 * bool Is現場工作群組 * bool Is查詢群組 ## Classes 表結構 -- 活動資料 * ID (INTEGER PRIMARY KEY) - 流水號(不自動編號,需要外部提供) * CourseCode (TEXT) - 課程編號 * CourseName (TEXT NOT NULL) - 課程名稱 * CourseDate (DATETIME) - 課程日期 * CourseLocation (TEXT) - 課程地點 * NotificationTemplate (TEXT) - 通知模板 ## SignUps 表結構 -- 參加人員資料 * ID (INTEGER PRIMARY KEY AUTOINCREMENT) - 流水號 * CourseID (INTEGER NOT NULL) - 課程ID * SeqNo (INTEGER NOT NULL) - 序號 * Name (TEXT NOT NULL) - 學員姓名 * Mobile (TEXT NOT NULL) - 手機號 * QRCode (TEXT) - QRCode內容 * SignUpType (TEXT) - 報名方式(預約/現場) * IDNumber (TEXT) - 身分證字號 * IDType (TEXT) - 身分別 * MealType (TEXT) - 用餐別 * Email (TEXT) - 電子郵件 * CheckInTime (DATETIME) - 簽到時間 * CheckOutTime (DATETIME) - 簽退時間 ## CheckIn 表結構 -- 簽到簽退紀錄 * ID (INTEGER PRIMARY KEY AUTOINCREMENT) - 流水號 * CourseID (INTEGER NOT NULL) - 課程ID * Name (TEXT NOT NULL) - 學員姓名 * Mobile (TEXT NOT NULL) - 手機號 * SignUpType (TEXT) - 報名方式(預約 / 現場) * IDNumber (TEXT) - 身分證字號 * IDType (TEXT) - 身分別 * MealType (TEXT) - 用餐別 * Email (TEXT) - 電子郵件 * CheckInType (TEXT) - 簽到類別(CHECKIN / CHECKOUT) * CheckInTime (DATETIME) - 簽到/簽退時間 * UploadTime (DATETIME) - 上傳時間 ## 操作功能 * Classes:新增、修改、查詢、刪除 * SignUps:新增、修改、查詢、刪除 * BPSN:新增、修改、查詢、刪除 * CheckIn:新增、修改、查詢、刪除 * 清除所有資料表 ## 查詢支援 * 條件查詢(WHERE) * 分頁查詢(LIMIT, OFFSET) * 排序(ORDER BY)