فهرست منبع

chore: cleanup unused files and archive legacy scripts into /legacy directory

unknown 2 ماه پیش
والد
کامیت
831853b12f
65فایلهای تغییر یافته به همراه0 افزوده شده و 564 حذف شده
  1. 0 0
      '
  2. 0 2
      api_test_out.txt
  3. 0 0
      legacy/backend_scratch/bench.py
  4. 0 0
      legacy/backend_scratch/check_db.py
  5. 0 0
      legacy/backend_scratch/check_messages.py
  6. 0 0
      legacy/backend_scratch/check_translations.py
  7. 0 0
      legacy/backend_scratch/create_mock_orders.py
  8. 0 0
      legacy/backend_scratch/create_mock_reviews.py
  9. 0 0
      legacy/backend_scratch/fix_admin_portfolio.py
  10. 0 0
      legacy/backend_scratch/inspect_db.py
  11. 0 0
      legacy/backend_scratch/inspect_routes.py
  12. 0 0
      legacy/backend_scratch/load_test.py
  13. 0 0
      legacy/backend_scratch/migrate_db.py
  14. 0 0
      legacy/backend_scratch/test_pdf.py
  15. 0 0
      legacy/backend_scratch/verify_pagination.py
  16. 0 0
      legacy/frontend/PrivacyPolicy.vue
  17. 0 0
      legacy/migrations/add_can_chat.py
  18. 0 0
      legacy/migrations/add_privacy_translations.py
  19. 0 0
      legacy/migrations/add_review_columns.py
  20. 0 0
      legacy/migrations/add_ua_cols.py
  21. 0 0
      legacy/migrations/alter_db.py
  22. 0 0
      legacy/migrations/alter_db2.py
  23. 0 0
      legacy/migrations/alter_db3.py
  24. 0 0
      legacy/migrations/alter_db4.py
  25. 0 0
      legacy/migrations/alter_db_chat.py
  26. 0 0
      legacy/migrations/alter_db_missing.py
  27. 0 0
      legacy/migrations/alter_db_orders.py
  28. 0 0
      legacy/migrations/alter_db_params.py
  29. 0 0
      legacy/migrations/alter_db_strict_materials.py
  30. 0 0
      legacy/migrations/alter_db_warehouse_units.py
  31. 0 0
      legacy/migrations/check_orders.py
  32. 0 0
      legacy/migrations/check_schema.py
  33. 0 0
      legacy/migrations/cleanup_obsolete_tables.py
  34. 0 0
      legacy/migrations/debug_db.py
  35. 0 0
      legacy/migrations/debug_files.py
  36. 0 0
      legacy/migrations/fix_users_table.py
  37. 0 0
      legacy/migrations/init_db.py
  38. 0 0
      legacy/migrations/migrate_localized.py
  39. 0 0
      legacy/migrations/migrate_verification.py
  40. 0 0
      legacy/migrations/reseed.py
  41. 0 0
      legacy/migrations/reset_db.py
  42. 0 0
      legacy/migrations/seed_portfolio.py
  43. 0 0
      legacy/migrations/server_schema_dump.sql
  44. 0 0
      legacy/migrations/tmp_update_orders_notes.py
  45. 0 0
      legacy/migrations/tmp_update_orders_schema.py
  46. 0 0
      legacy/migrations/tmp_update_schema.py
  47. 0 0
      legacy/scratch/check_db_schema.py
  48. 0 0
      legacy/scratch/fill_admin_locales.py
  49. 0 0
      legacy/scratch/find_leaks.py
  50. 0 0
      legacy/scratch/fix_admin_translations.py
  51. 0 0
      legacy/scratch/fix_admin_ui.py
  52. 0 0
      legacy/scratch/fix_modal_locales.py
  53. 0 0
      legacy/scratch/restore_common.py
  54. 0 0
      legacy/scratch/update_price_disclaimer.py
  55. 0 0
      legacy/tests/mytest_gen_uplat.py
  56. 0 0
      legacy/tests/test_admin_api.py
  57. 0 0
      legacy/tests/test_admin_api_v2.py
  58. 0 0
      legacy/tests/test_query.py
  59. 0 0
      legacy/tests/test_users.py
  60. 0 0
      legacy/translate_ua.py
  61. 0 396
      nginx_history.diff
  62. BIN
      server_debug.log
  63. 0 132
      src/components/privacy policy.txt
  64. 0 33
      temp.html
  65. 0 1
      test1.txt

+ 0 - 2
api_test_out.txt

@@ -1,2 +0,0 @@
-Status: 200
-Body: []

+ 0 - 0
backend/scratch/bench.py → legacy/backend_scratch/bench.py


+ 0 - 0
backend/scratch/check_db.py → legacy/backend_scratch/check_db.py


+ 0 - 0
backend/scratch/check_messages.py → legacy/backend_scratch/check_messages.py


+ 0 - 0
backend/scratch/check_translations.py → legacy/backend_scratch/check_translations.py


+ 0 - 0
backend/scratch/create_mock_orders.py → legacy/backend_scratch/create_mock_orders.py


+ 0 - 0
backend/scratch/create_mock_reviews.py → legacy/backend_scratch/create_mock_reviews.py


+ 0 - 0
backend/scratch/fix_admin_portfolio.py → legacy/backend_scratch/fix_admin_portfolio.py


+ 0 - 0
backend/scratch/inspect_db.py → legacy/backend_scratch/inspect_db.py


+ 0 - 0
backend/scratch/inspect_routes.py → legacy/backend_scratch/inspect_routes.py


+ 0 - 0
backend/scratch/load_test.py → legacy/backend_scratch/load_test.py


+ 0 - 0
backend/scratch/migrate_db.py → legacy/backend_scratch/migrate_db.py


+ 0 - 0
backend/scratch/test_pdf.py → legacy/backend_scratch/test_pdf.py


+ 0 - 0
backend/scratch/verify_pagination.py → legacy/backend_scratch/verify_pagination.py


+ 0 - 0
src/views/PrivacyPolicy.vue → legacy/frontend/PrivacyPolicy.vue


+ 0 - 0
backend/add_can_chat.py → legacy/migrations/add_can_chat.py


+ 0 - 0
backend/add_privacy_translations.py → legacy/migrations/add_privacy_translations.py


+ 0 - 0
backend/add_review_columns.py → legacy/migrations/add_review_columns.py


+ 0 - 0
backend/add_ua_cols.py → legacy/migrations/add_ua_cols.py


+ 0 - 0
backend/alter_db.py → legacy/migrations/alter_db.py


+ 0 - 0
backend/alter_db2.py → legacy/migrations/alter_db2.py


+ 0 - 0
backend/alter_db3.py → legacy/migrations/alter_db3.py


+ 0 - 0
backend/alter_db4.py → legacy/migrations/alter_db4.py


+ 0 - 0
backend/alter_db_chat.py → legacy/migrations/alter_db_chat.py


+ 0 - 0
backend/alter_db_missing.py → legacy/migrations/alter_db_missing.py


+ 0 - 0
backend/alter_db_orders.py → legacy/migrations/alter_db_orders.py


+ 0 - 0
backend/alter_db_params.py → legacy/migrations/alter_db_params.py


+ 0 - 0
backend/alter_db_strict_materials.py → legacy/migrations/alter_db_strict_materials.py


+ 0 - 0
backend/alter_db_warehouse_units.py → legacy/migrations/alter_db_warehouse_units.py


+ 0 - 0
backend/check_orders.py → legacy/migrations/check_orders.py


+ 0 - 0
backend/check_schema.py → legacy/migrations/check_schema.py


+ 0 - 0
backend/cleanup_obsolete_tables.py → legacy/migrations/cleanup_obsolete_tables.py


+ 0 - 0
backend/debug_db.py → legacy/migrations/debug_db.py


+ 0 - 0
backend/debug_files.py → legacy/migrations/debug_files.py


+ 0 - 0
fix_users_table.py → legacy/migrations/fix_users_table.py


+ 0 - 0
backend/init_db.py → legacy/migrations/init_db.py


+ 0 - 0
backend/migrate_localized.py → legacy/migrations/migrate_localized.py


+ 0 - 0
backend/migrate_verification.py → legacy/migrations/migrate_verification.py


+ 0 - 0
backend/reseed.py → legacy/migrations/reseed.py


+ 0 - 0
backend/reset_db.py → legacy/migrations/reset_db.py


+ 0 - 0
backend/seed_portfolio.py → legacy/migrations/seed_portfolio.py


+ 0 - 0
backend/server_schema_dump.sql → legacy/migrations/server_schema_dump.sql


+ 0 - 0
tmp_update_orders_notes.py → legacy/migrations/tmp_update_orders_notes.py


+ 0 - 0
tmp_update_orders_schema.py → legacy/migrations/tmp_update_orders_schema.py


+ 0 - 0
tmp_update_schema.py → legacy/migrations/tmp_update_schema.py


+ 0 - 0
scratch/check_db_schema.py → legacy/scratch/check_db_schema.py


+ 0 - 0
scratch/fill_admin_locales.py → legacy/scratch/fill_admin_locales.py


+ 0 - 0
scratch/find_leaks.py → legacy/scratch/find_leaks.py


+ 0 - 0
scratch/fix_admin_translations.py → legacy/scratch/fix_admin_translations.py


+ 0 - 0
scratch/fix_admin_ui.py → legacy/scratch/fix_admin_ui.py


+ 0 - 0
scratch/fix_modal_locales.py → legacy/scratch/fix_modal_locales.py


+ 0 - 0
scratch/restore_common.py → legacy/scratch/restore_common.py


+ 0 - 0
scratch/update_price_disclaimer.py → legacy/scratch/update_price_disclaimer.py


+ 0 - 0
backend/mytest_gen_uplat.py → legacy/tests/mytest_gen_uplat.py


+ 0 - 0
backend/test_admin_api.py → legacy/tests/test_admin_api.py


+ 0 - 0
backend/test_admin_api_v2.py → legacy/tests/test_admin_api_v2.py


+ 0 - 0
backend/test_query.py → legacy/tests/test_query.py


+ 0 - 0
backend/test_users.py → legacy/tests/test_users.py


+ 0 - 0
translate_ua.py → legacy/translate_ua.py


+ 0 - 396
nginx_history.diff

@@ -1,396 +0,0 @@
-commit b62710efac804ff8c8a342aacdd74e361ff5692b
-Author: unknown <C:\TheBat\Mail>
-Date:   Sat Apr 18 12:34:33 2026 +0200
-
-    feat: implement Google OAuth, localize fonts, and fix translations
-
-diff --git a/nginx.conf b/nginx.conf
-index 3c83210..ac9b785 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -37,8 +37,15 @@ server {
-         access_log off;
-     }
- 
-+    # Font files (local hosting, long-term cache)
-+    location /fonts/ {
-+        expires 10y;
-+        add_header Cache-Control "public, immutable";
-+        access_log off;
-+    }
-+
-     # Other static files
--    location ~* \.(?:ico|gif|jpe?g|png|woff2?|eot|otf|ttf|svg|webp|avif)$ {
-+    location ~* \.(?:ico|gif|jpe?g|png|svg|webp|avif)$ {
-         expires 7d;
-         add_header Cache-Control "public";
-         access_log off;
-
-commit 4e7163df2f3af8f7a4a451a577cf112fe0393e06
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 21:56:03 2026 +0200
-
-    perf: optimize page speed (caching, font loading, lazy loading) and fix admin ui bug
-
-diff --git a/nginx.conf b/nginx.conf
-index fc10195..3c83210 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -6,10 +6,42 @@ server {
- 
-     # Gzip Compression
-     gzip on;
--    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
-+    gzip_static on;
-+    gzip_vary on;
-+    gzip_proxied any;
-+    gzip_comp_level 6;
-+    gzip_buffers 16 8k;
-+    gzip_http_version 1.1;
-+    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml font/woff2;
-+
-+    # Security Headers
-+    add_header X-Frame-Options "SAMEORIGIN";
-+    add_header X-XSS-Protection "1; mode=block";
-+    add_header X-Content-Type-Options "nosniff";
-+    add_header Referrer-Policy "strict-origin-when-cross-origin";
-+    # add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
- 
-     location / {
-         try_files $uri $uri/ /index.html;
-+        
-+        # Caching for index.html (don't cache)
-+        location = /index.html {
-+            add_header Cache-Control "no-store, no-cache, must-revalidate";
-+        }
-+    }
-+
-+    # Static assets in /assets/ (Vite)
-+    location /assets/ {
-+        expires 1y;
-+        add_header Cache-Control "public, immutable";
-+        access_log off;
-+    }
-+
-+    # Other static files
-+    location ~* \.(?:ico|gif|jpe?g|png|woff2?|eot|otf|ttf|svg|webp|avif)$ {
-+        expires 7d;
-+        add_header Cache-Control "public";
-+        access_log off;
-     }
- 
-     # Proxy API requests to backend
-@@ -17,6 +49,8 @@ server {
-         proxy_pass http://127.0.0.1:8000/;
-         proxy_set_header Host $host;
-         proxy_set_header X-Real-IP $remote_addr;
-+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-+        proxy_set_header X-Forwarded-Proto $scheme;
-     }
- 
-     # Standalone Deploy Webhook
-@@ -32,12 +66,13 @@ server {
-         proxy_set_header Upgrade $http_upgrade;
-         proxy_set_header Connection "Upgrade";
-         proxy_set_header Host $host;
-+        proxy_read_timeout 86400;
-     }
- 
-     # Static uploads
-     location /uploads/ {
-         alias /var/www/radionica3d/backend/uploads/;
--        expires 7d;
-+        expires 30d;
-         add_header Cache-Control "public";
-     }
- 
-
-commit 229204fd2bf5efaccdd53b667ae8d34c89561236
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 21:18:15 2026 +0200
-
-    fix(nginx/backend): use 127.0.0.1 instead of localhost to avoid IPv6 issues and harden security
-
-diff --git a/nginx.conf b/nginx.conf
-index 0134f85..fc10195 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -14,7 +14,7 @@ server {
- 
-     # Proxy API requests to backend
-     location /api/ {
--        proxy_pass http://localhost:8000/;
-+        proxy_pass http://127.0.0.1:8000/;
-         proxy_set_header Host $host;
-         proxy_set_header X-Real-IP $remote_addr;
-     }
-@@ -27,7 +27,7 @@ server {
- 
-     # WebSocket requests
-     location /ws/ {
--        proxy_pass http://localhost:8000/;
-+        proxy_pass http://127.0.0.1:8000/;
-         proxy_http_version 1.1;
-         proxy_set_header Upgrade $http_upgrade;
-         proxy_set_header Connection "Upgrade";
-
-commit fa2c09d93612b0027fa36c16a44d782163e97fa5
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 20:41:31 2026 +0200
-
-    fix(nginx): remove duplicate /ws/ prefix for websocket proxying
-
-diff --git a/nginx.conf b/nginx.conf
-index 0c90674..0134f85 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -27,7 +27,7 @@ server {
- 
-     # WebSocket requests
-     location /ws/ {
--        proxy_pass http://localhost:8000/ws/;
-+        proxy_pass http://localhost:8000/;
-         proxy_http_version 1.1;
-         proxy_set_header Upgrade $http_upgrade;
-         proxy_set_header Connection "Upgrade";
-
-commit 3cd2994dfa88f30f006454870e8787446af0866c
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 19:41:29 2026 +0200
-
-    fix: use explicit shell and venv paths in scripts
-
-diff --git a/nginx.conf b/nginx.conf
-index 12d540e..0c90674 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -1,7 +1,7 @@
- server {
-     server_name radionica3d.me 148.230.71.134;
- 
--    root /var/www/radionica3d/html;
-+    root /var/www/radionica3d/dist;
-     index index.html;
- 
-     # Gzip Compression
-
-commit 169118e860e5bbaee3d253e166666e67f43bba21
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 19:30:53 2026 +0200
-
-    style: remove www prefix
-
-diff --git a/nginx.conf b/nginx.conf
-index b7bbf6a..12d540e 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -1,5 +1,5 @@
- server {
--    server_name radionica3d.me www.radionica3d.me;
-+    server_name radionica3d.me 148.230.71.134;
- 
-     root /var/www/radionica3d/html;
-     index index.html;
-@@ -54,6 +54,6 @@ server {
-     } # managed by Certbot
- 
-     listen 80;
--    server_name radionica3d.me www.radionica3d.me;
-+    server_name radionica3d.me;
-     return 301 https://radionica3d.me$request_uri;
- }
-
-commit 767c4a5846dc951db722f35db3f80c17e025404a
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 19:26:05 2026 +0200
-
-    chore: finalize nginx with ssl and correct paths
-
-diff --git a/nginx.conf b/nginx.conf
-index fe4139d..b7bbf6a 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -1,8 +1,7 @@
- server {
--    listen 80;
--    server_name radionica3d.me www.radionica3d.me 148.230.71.134;
-+    server_name radionica3d.me www.radionica3d.me;
- 
--    root /usr/share/nginx/html;
-+    root /var/www/radionica3d/html;
-     index index.html;
- 
-     # Gzip Compression
-@@ -35,10 +34,26 @@ server {
-         proxy_set_header Host $host;
-     }
- 
--    # Static uploads (if served via Nginx instead of FastAPI)
-+    # Static uploads
-     location /uploads/ {
--        alias /app/uploads/;
-+        alias /var/www/radionica3d/backend/uploads/;
-         expires 7d;
-         add_header Cache-Control "public";
-     }
-+
-+    listen 443 ssl; # managed by Certbot
-+    ssl_certificate /etc/letsencrypt/live/radionica3d.me/fullchain.pem; # managed by Certbot
-+    ssl_certificate_key /etc/letsencrypt/live/radionica3d.me/privkey.pem; # managed by Certbot
-+    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
-+    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
-+}
-+
-+server {
-+    if ($host = radionica3d.me) {
-+        return 301 https://$host$request_uri;
-+    } # managed by Certbot
-+
-+    listen 80;
-+    server_name radionica3d.me www.radionica3d.me;
-+    return 301 https://radionica3d.me$request_uri;
- }
-
-commit 408b5288c2819b47476a2588938f87e2fd5a9b8f
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 19:23:21 2026 +0200
-
-    chore: migrate to radionica3d.me domain
-
-diff --git a/nginx.conf b/nginx.conf
-index 539da66..fe4139d 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -1,6 +1,6 @@
- server {
-     listen 80;
--    server_name radionica3d.com www.radionica3d.com 148.230.71.134;
-+    server_name radionica3d.me www.radionica3d.me 148.230.71.134;
- 
-     root /usr/share/nginx/html;
-     index index.html;
-
-commit 36b39d97c8f342c6797bc07aa725d1897ad35027
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 19:08:09 2026 +0200
-
-    fix: replace backend with localhost in nginx ws block
-
-diff --git a/nginx.conf b/nginx.conf
-index e66f9d7..539da66 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -28,7 +28,7 @@ server {
- 
-     # WebSocket requests
-     location /ws/ {
--        proxy_pass http://backend:8000/ws/;
-+        proxy_pass http://localhost:8000/ws/;
-         proxy_http_version 1.1;
-         proxy_set_header Upgrade $http_upgrade;
-         proxy_set_header Connection "Upgrade";
-
-commit e61c07a115797fd7ecfc06163518797550af5443
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 19:05:49 2026 +0200
-
-    fix: add IP to nginx server_name
-
-diff --git a/nginx.conf b/nginx.conf
-index 0ba596e..e66f9d7 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -1,6 +1,6 @@
- server {
-     listen 80;
--    server_name radionica3d.com;
-+    server_name radionica3d.com www.radionica3d.com 148.230.71.134;
- 
-     root /usr/share/nginx/html;
-     index index.html;
-
-commit 60afc342de08f4bdb87a5e406d79585a926c2cc8
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 19:02:49 2026 +0200
-
-    chore: setup standalone deploy infrastructure
-
-diff --git a/nginx.conf b/nginx.conf
-index 86bc57e..0ba596e 100644
---- a/nginx.conf
-+++ b/nginx.conf
-@@ -15,12 +15,15 @@ server {
- 
-     # Proxy API requests to backend
-     location /api/ {
--        proxy_pass http://backend:8000/;
--        proxy_http_version 1.1;
--        proxy_set_header Upgrade $http_upgrade;
--        proxy_set_header Connection 'upgrade';
-+        proxy_pass http://localhost:8000/;
-+        proxy_set_header Host $host;
-+        proxy_set_header X-Real-IP $remote_addr;
-+    }
-+
-+    # Standalone Deploy Webhook
-+    location /deploy-webhook {
-+        proxy_pass http://127.0.0.1:9000;
-         proxy_set_header Host $host;
--        proxy_cache_bypass $http_upgrade;
-     }
- 
-     # WebSocket requests
-
-commit 9e9e68d399ca3a1e2b59119325d3e8603dca9f50
-Author: unknown <C:\TheBat\Mail>
-Date:   Fri Apr 17 18:48:02 2026 +0200
-
-    Auto-init: project ready for production
-
-diff --git a/nginx.conf b/nginx.conf
-new file mode 100644
-index 0000000..86bc57e
---- /dev/null
-+++ b/nginx.conf
-@@ -0,0 +1,41 @@
-+server {
-+    listen 80;
-+    server_name radionica3d.com;
-+
-+    root /usr/share/nginx/html;
-+    index index.html;
-+
-+    # Gzip Compression
-+    gzip on;
-+    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
-+
-+    location / {
-+        try_files $uri $uri/ /index.html;
-+    }
-+
-+    # Proxy API requests to backend
-+    location /api/ {
-+        proxy_pass http://backend:8000/;
-+        proxy_http_version 1.1;
-+        proxy_set_header Upgrade $http_upgrade;
-+        proxy_set_header Connection 'upgrade';
-+        proxy_set_header Host $host;
-+        proxy_cache_bypass $http_upgrade;
-+    }
-+
-+    # WebSocket requests
-+    location /ws/ {
-+        proxy_pass http://backend:8000/ws/;
-+        proxy_http_version 1.1;
-+        proxy_set_header Upgrade $http_upgrade;
-+        proxy_set_header Connection "Upgrade";
-+        proxy_set_header Host $host;
-+    }
-+
-+    # Static uploads (if served via Nginx instead of FastAPI)
-+    location /uploads/ {
-+        alias /app/uploads/;
-+        expires 7d;
-+        add_header Cache-Control "public";
-+    }
-+}

BIN
server_debug.log


+ 0 - 132
src/components/privacy policy.txt

@@ -1,132 +0,0 @@
-
-Radionica3d ( “we”, “us”) operates this website and is responsible for how your personal data is collected and used. This Privacy Policy describes:
-
-what data we collect
-
-how and why we use it
-
-where and how it is stored or transferred
-
-your rights regarding your data
-
-how to contact us about privacy
-
-By visiting our site, contacting us, or using our services, you agree to this policy.
-
-If you have any questions or wish to exercise your data rights, please contact us at:
-
-[ our_email ]
-
-
-1. Data We Collect
-We may collect and process:
-
-Contact details: name, email, phone number, company
-
-Project data & uploads: messages, briefs, 3D models, images, sketches
-
-Transaction data: quotes, invoices, payments
-
-Website & technical data: IP address, browser type, cookies, analytics
-
-We do not collect sensitive categories (e.g. race, health, religious beliefs).
-
-
-2. How We Use Your Data
-We use personal data to:
-
-respond to enquiries and provide quotes
-
-manage projects, orders, deliveries
-
-maintain client records in our systems
-
-send updates or confirmations (email or WhatsApp/Viber/Telegram, where consent given)
-
-improve our website and services via anonymised analytics
-
-We do not sell or rent your personal data to third parties.
-
-
-3. Lawful Basis for Processing
-Under EU GDPR, we rely on:
-
-Contract — to perform services you request (quotes, production)
-
-Legitimate Interest — for business administration, client management, and responding to enquiries
-
-Consent — for optional marketing or newsletters
-
-If you give consent, you may withdraw it at any time (we will respect that).
-
-
-4. File Uploads & Submitted Content
-When you upload files or models, they are handled under our Content Submission & IP Protection Agreement.
-
-We keep project files securely while a job is active. After the job or after a defined period (e.g. 30 days on temporary services), we may delete or anonymise them as per our data-retention rules.
-
-
-5. Storage & Security
-Our primary storage is on secure servers under our control in the EU.
-
-We use encryption, secure access controls, and limited staff access.
-
-Only authorised personnel and vetted contractors can access your data.
-
-Transaction and project records are kept for up to six years (for accounting and legal compliance). After that, they are deleted or anonymised.
-
- Where a client asks us to retain project files for repeat orders, we will do so securely until instructed otherwise
- 
- 
-
-6. Sharing & Third-Party Services
-We only share personal data when necessary to provide the service, such as:
-
-Payment processors (for payment transactions) if any.
-
-Order / file management platforms (e.g. for on-demand print workflows)
-
-Logistics / delivery partners
-
-Accountants, legal advisors
-
-All third parties are bound to confidentiality and data protection obligations consistent with EU GDPR.
-
-
-7. Your Rights
-You have the right to:
-
-access your personal data
-
-correct inaccuracies
-
-request deletion (where legally permitted)
-
-object to processing or withdraw consent
-
-request restriction or portability of data
-
-Submit requests via privacy@champion3d.com (or contact form). We will respond within 30 days.
-
-
-8. Cookies & Analytics
-We use essential cookies for site functionality, and optional analytics cookies to monitor usage and improve performance.
-
-You can manage or disable cookies via browser settings (bottom left of screen, blue cookie button) or our Cookie Policy page.
-
-
-9. International Transfers & Third-Country Processing
-Although we store most data in the EU, we also work with service providers (such as order or CRM platforms) whose servers may be located outside the EU (including the US).
-
-When personal data is transferred internationally, we ensure it is protected via Standard Contractual Clauses (SCCs) or equivalent safeguards approved under EU GDPR, so your data remains legally protected.
-
-By using our services, you acknowledge that your data may be transferred and processed outside the UE under such safeguards.
-
-
-10. Policy Updates
-We may revise this policy from time to time. The latest version is always on [link to privacy policy] , and the “Effective Date” at the top shows when it was last updated.
-
-
-11. Contact & Complaints
-If you have questions or concerns about how we handle your data, contact us.
-

+ 0 - 33
temp.html

@@ -1,33 +0,0 @@
-<!DOCTYPE html><html lang="en"><head>
-    <meta charset="UTF-8">
-    <link rel="icon" type="image/png" href="/favicon.png">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    
-    <link rel="stylesheet" href="/fonts/fonts.css">
-    
-    <title>Radionica 3D | Professional 3D Printing in Montenegro</title>
-    <link rel="canonical" href="https://radionica3d.me/">
-    <meta name="description" content="Professional 3D printing and rapid prototyping services in Montenegro. Instant quotes, industrial materials, and high-precision results.">
-    
-    <!-- Open Graph / Facebook -->
-    <meta property="og:type" content="website">
-    <meta property="og:url" content="https://radionica3d.me/">
-    <meta property="og:title" content="Radionica 3D | Professional 3D Printing in Montenegro">
-    <meta property="og:description" content="Instant 3D printing quotes and high-quality prototyping in Herceg Novi, Montenegro.">
-    <meta property="og:image" content="https://radionica3d.me/og-image.jpg">
-
-    <!-- Twitter -->
-    <meta property="twitter:card" content="summary_large_image">
-    <meta property="twitter:url" content="https://radionica3d.me/">
-    <meta property="twitter:title" content="Radionica 3D | Professional 3D Printing in Montenegro">
-    <meta property="twitter:description" content="Instant 3D printing quotes and high-quality prototyping in Montenegro.">
-    <meta property="twitter:image" content="https://radionica3d.me/og-image.jpg">
-    <script type="module" crossorigin="" src="/assets/index-C943cYmg.js"></script>
-    <link rel="modulepreload" crossorigin="" href="/assets/ui-vendor-DdNkK3Gi.js">
-    <link rel="stylesheet" crossorigin="" href="/assets/index-g1QCt653.css">
-  </head>
-  <body>
-    <div id="root"></div>
-  
-
-</body></html>

+ 0 - 1
test1.txt

@@ -1 +0,0 @@
-123