Andrew 2 месяцев назад
Родитель
Сommit
0366d80a59
2 измененных файлов: 75 добавлений и 2 удалений
  1. 2
    2
      app/Filament/Resources/ProjectResource.php
  2. 73
    0
      app/Models/Badge.php

+ 2
- 2
app/Filament/Resources/ProjectResource.php Просмотреть файл

65
                         ->preload()
65
                         ->preload()
66
                         ->label('標籤'),
66
                         ->label('標籤'),
67
                     FileUpload::make('thumbnail')->label('縮圖')->directory('project')->image(),
67
                     FileUpload::make('thumbnail')->label('縮圖')->directory('project')->image(),
68
-                    FileUpload::make('img_url')->label('圖片')->directory('project')->multiple()->maxFiles(5),
69
-                    FileUpload::make('mobile_img_url')->label('手機版圖片')->directory('project')->multiple()->maxFiles(5),
68
+                    FileUpload::make('img_url')->label('圖片')->directory('project')->reorderable()->multiple()->maxFiles(5),
69
+                    FileUpload::make('mobile_img_url')->label('手機版圖片')->directory('project')->reorderable()->multiple()->maxFiles(5),
70
                     TextInput::make('order')->label('排序')->default('0'),
70
                     TextInput::make('order')->label('排序')->default('0'),
71
                 ]),
71
                 ]),
72
                 Tabs::make()->schema([
72
                 Tabs::make()->schema([

+ 73
- 0
app/Models/Badge.php Просмотреть файл

28
     }
28
     }
29
 
29
 
30
 }
30
 }
31
+
32
+
33
+#!/bin/bash
34
+# =============================================================================
35
+# Fresh Export + Ready-to-use SCP command for operators
36
+# Run this on your backend server when someone requests today's data
37
+# =============================================================================
38
+
39
+set -e  # Stop on any error
40
+
41
+# Config
42
+DB_PATH="$HOME/backend/surveys.db"
43
+EXPORT_DIR="$HOME/backend/exports"
44
+DATE=$(date +%Y%m%d)                    # e.g. 20251121
45
+TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
46
+
47
+mkdir -p "$EXPORT_DIR"
48
+
49
+MAIN_CSV="$EXPORT_DIR/surveys_${DATE}.csv"
50
+GB_CSV="$EXPORT_DIR/gb_surveys_${DATE}.csv"
51
+
52
+echo "=================================================="
53
+echo "Exporting fresh data for $DATE"
54
+echo "Started at: $TIMESTAMP"
55
+echo "=================================================="
56
+
57
+# Export main surveys
58
+sqlite3 "$DB_PATH" <<SQL
59
+.headers on
60
+.mode csv
61
+.output "$MAIN_CSV"
62
+SELECT
63
+    id, name, email, phone, company, department, title,
64
+    utm_source, utm_medium, utm_campaign,
65
+    answer1, answer2, answer3, answer4, answer5,
66
+    created_at, completed_at
67
+FROM surveys
68
+ORDER BY created_at DESC;
69
+SQL
70
+
71
+# Export GB surveys
72
+sqlite3 "$DB_PATH" <<SQL
73
+.headers on
74
+.mode csv
75
+.output "$GB_CSV"
76
+SELECT
77
+    id, name, email, phone, company, department, note,
78
+    utm_source, utm_medium, utm_campaign,
79
+    created_at
80
+FROM gb_surveys
81
+ORDER BY created_at DESC;
82
+SQL
83
+
84
+# Count records
85
+MAIN_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM surveys;")
86
+GB_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM gb_surveys;")
87
+
88
+echo ""
89
+echo "SUCCESS! Files created:"
90
+echo "   → $MAIN_CSV     ($MAIN_COUNT records)"
91
+echo "   → $GB_CSV       ($GB_COUNT records)"
92
+echo ""
93
+echo "=================================================="
94
+echo "COPY-PASTE THIS TO DOWNLOAD:"
95
+echo ""
96
+echo "scp -i dell.pem ubuntu@43.207.13.55:~backend/exports/surveys_${DATE}.csv ~/Downloads/"
97
+echo "scp -i dell.pem ubuntu@43.207.13.55:~backend/exports/gb_surveys_${DATE}.csv ~/Downloads/"
98
+echo ""
99
+echo "Or download both at once:"
100
+echo "scp -i dell.pem ubuntu@43.207.13.55:~backend/exports/*_${DATE}.csv ~/Downloads/"
101
+echo ""
102
+echo "Finished at: $(date '+%Y-%m-%d %H:%M:%S')"
103
+echo "=================================================="