payacom
6e25e1a38a
fix(shops): parse multipart logo upload on PATCH /shops/:id/logo
...
req.files.logo relied on an express-form-data style parser that was
removed app-wide, so the route never had a multipart parser and every
logo upload failed with "لطفاً لوگوی فروشگاه را انتخاب کنید" even
though the client had already picked and sent an image. Add the same
multer-based pattern already used for profile_image and shop-products
image uploads.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-10-28 16:46:04 +03:30
payacom
e5dcd0f1b2
reels
2026-10-09 15:44:47 +03:30
payacom
367416d419
pay
2026-10-06 17:08:44 +03:30
payacom
fade8543e2
e2ee
2026-10-02 18:13:34 +03:30
payacom
d4ebc20aa8
reels
2026-10-01 21:12:05 +03:30
payacom
806471241e
full app
2026-09-24 21:03:27 +03:30
payacom
7f0ddfde70
full app
2026-09-24 21:00:07 +03:30
payacom
1954b2661d
Add shop-chat push notifications and a "send shop to users" endpoint
...
- shop-chat messages (buyer <-> shop owner) never sent any push notification
at all — sendShopChatPushNotification (chatHelpers.js) now fires on every
send, mirroring the existing regular-chat push path; data payload carries
shop_id/buyer_id/sender_role so clients can route directly to the thread
- New POST /shops/:id/send, mirroring the existing shop-product send
endpoint — lets a user share a shop itself (not just one product) into a
regular chat message as a sharedShop payload
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-09-16 14:05:19 +03:30
payacom
2e14db1ccd
Add Pinterest tag/filter for shop products
...
- New is_pinterest boolean on ShopProductListingModel, settable via the
existing create/update product endpoints (multipart form field)
- /shop-products/discover accepts ?pinterest=true to show only
Pinterest-tagged products across shops; skips the tagged-posts merge
under this filter since those posts aren't Pinterest-tagged themselves
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-09-16 10:22:37 +03:30
payacom
e1abb40cc6
Reduce media bandwidth: compress uploads, add long-lived cache headers, gzip API
...
- Resize/re-encode every uploaded image server-side (posts, avatars, stories,
shop products/logo, chat messages) via a shared sharp-based optimizer —
caps dimensions to what's actually displayed and re-compresses in place,
cutting a typical raw camera photo by ~90% with no visible quality loss
- Cap uploaded video resolution/bitrate (re-encode only when above 1280px/
~2.5Mbps) alongside the existing faststart step; apply faststart+cap to
story and chat videos too (previously stored completely raw)
- Add long-lived Cache-Control to all /storage static routes so clients stop
re-downloading unchanged media on every request
- Add gzip/brotli compression for JSON API responses (feed/explore/chat)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-09-15 17:55:09 +03:30
payacom
26979057d7
feat: mask Iranian phone numbers in user-generated text fields
...
کاربران نتونن با گذاشتن شماره موبایل/تلفن توی بیو، کپشن پست/ریلز، توضیحاتِ
فروشگاه/کالا/پروژه/دوره/پروفایلِ آموزشگاه، بیرون از پلتفرم تماس بدن. یک
util مشترک (utils/phoneNumberMasking.js) شمارههای ایرانی رو حتی وقتی
رقمها با فاصله/خطفاصله/نقطه از هم جدا شده باشن تشخیص میده و فقط همون
بخش رو با * جایگزین میکنه — بدون اینکه به قیمت/سایز/کد سفارش و بقیهی
اعدادِ عادی دست بزنه. موقعِ ذخیره (نه نمایش) اعمال میشه، پس هیچ endpointِ
خوندنی نیاز به تغییر نداره.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-09-15 15:54:26 +03:30
payacom
5f99516078
fix: shop profile product count — approved-only for visitors, total for owner
...
توی پروفایل عمومی فروشگاه تعداد کالا فقط شاملِ کالاهای تاییدشده (active) میشه؛
خودِ مالک فروشگاه توی پروفایلِ خودش تعداد کل کالاها (هر وضعیتی) رو میبینه.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-09-15 13:20:41 +03:30
payacom
ddd70143cf
Fix shop product bugs: partial catalog search, premature product activation, verify badge population
...
- searchCatalog: use $regex partial match (like user search) instead of
MongoDB $text full-word search, so typing part of a product name works
- createShopProduct: new listings always start pending_shop_approval instead
of auto-activating when the shop itself is already active, so incomplete
wizard drafts no longer leak into the public discover feed before the
owner finishes and it's approved
- Populate owner.verify_badge on shop responses (getShopPublic, getShopById,
getDiscoverFeed, getShopProductById, getCatalogListings) so the app can
show a verified/license badge next to shop names
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-09-15 12:32:26 +03:30
payacom
c302aea177
4.1.3
2026-09-13 21:32:36 +03:30
payacom
90c5f94b57
check
2026-09-03 16:06:02 +03:30
payacom
3f416a7a60
full
2026-08-31 20:45:41 +03:30
payacom
fa9f23c61d
Merge branch 'main' of http://193.151.143.243:3000/modstagram/modstagram-back
...
# Conflicts:
# controllers/application/projects/getProjectController.js
# controllers/application/stories/storyController.js
# controllers/application/users/getUserController.js
# controllers/panel/projects/projectController.js
# index.js
2026-08-31 20:32:29 +03:30
payacom
a0d0bc5d5a
seo
2026-07-12 12:02:20 +03:30
payacom
0e354f5a56
up
2026-07-11 21:30:49 +03:30
payacom
54971578b0
chat pic
2026-07-11 20:52:56 +03:30
root
c62e4c0577
fix: resolve MongoDB connection and port configuration issues
...
- Added dotenv configuration for environment variables
- Fixed MongoDB connection string loading
- Configured server port to 3005
- Updated cron jobs for expired messages
2026-07-11 14:06:46 +03:30
payacom
3c90976f23
updata
2026-07-10 17:53:53 +03:30
payacom
51eb7d0224
Initial commit
2026-07-09 15:25:16 +03:30
payacom
0b01b262fa
Initial commit
2026-07-08 21:01:30 +03:30
Amirreza
b3bb0d0ff3
modified: controllers/application/academy/academyCategoryController.js
...
modified: controllers/application/academy/academyControllers.js
modified: controllers/application/academy/helpers/chatHelpers.js
modified: controllers/application/academy/middlewares/404.js
modified: controllers/application/academy/middlewares/adminAuth.js
modified: controllers/application/academy/middlewares/auth.js
modified: controllers/application/academy/middlewares/blockCheck.js
modified: controllers/application/academy/middlewares/exception.js
modified: controllers/application/academy/middlewares/index.js
modified: controllers/application/academy/middlewares/isHalfRegister.js
modified: controllers/application/academy/middlewares/isRegister.js
modified: controllers/application/academy/middlewares/lastOnline.js
modified: controllers/application/academy/middlewares/upload.js
modified: controllers/application/academy/models/AcademyCategoryModel.js
modified: controllers/application/academy/models/AcademyContentModel.js
modified: controllers/application/academy/models/AcademyLikeModel.js
modified: controllers/application/academy/models/AcademyModel.js
modified: controllers/application/academy/models/AcademyPaymentModel.js
modified: controllers/application/academy/models/AdminModel.js
modified: controllers/application/academy/models/AdvertisingCategoryModel.js
modified: controllers/application/academy/models/AdvertisingCommentModel.js
modified: controllers/application/academy/models/AdvertisingFeaturesModel.js
modified: controllers/application/academy/models/AdvertisingLikeModel.js
modified: controllers/application/academy/models/AdvertisingModel.js
modified: controllers/application/academy/models/AdvertisingProfile.js
modified: controllers/application/academy/models/AdvertisingRatingModel.js
modified: controllers/application/academy/models/AdvertisingTypeModel.js
modified: controllers/application/academy/models/CommentModel.js
modified: controllers/application/academy/models/CourseComentModel.js
modified: controllers/application/academy/models/CourseModel.js
modified: controllers/application/academy/models/CoursePaymentModel.js
modified: controllers/application/academy/models/ExpertiseModel.js
modified: controllers/application/academy/models/IsPaymentCourseModel.js
modified: controllers/application/academy/models/LikeModel.js
modified: controllers/application/academy/models/MessageModel.js
modified: controllers/application/academy/models/NotificationModel.js
modified: controllers/application/academy/models/OfferModel.js
modified: controllers/application/academy/models/OfferTypeModel.js
modified: controllers/application/academy/models/PaymentModel.js
modified: controllers/application/academy/models/PostModel.js
modified: controllers/application/academy/models/ProjectModel.js
modified: controllers/application/academy/models/RequestModel.js
modified: controllers/application/academy/models/SettingsModel.js
modified: controllers/application/academy/models/StateCity.js
modified: controllers/application/academy/models/TaxModel.js
modified: controllers/application/academy/models/TicketMessageModel.js
modified: controllers/application/academy/models/TicketModel.js
modified: controllers/application/academy/models/TypeAndPriceModel.js
modified: controllers/application/academy/models/UserModel.js
modified: controllers/application/academy/models/VersionModel.js
modified: controllers/application/academy/models/license.js
modified: controllers/application/advertising/advertisingController.js
modified: controllers/application/citysController.js
modified: controllers/application/expertise/expertiseController.js
modified: controllers/application/financial/financialController.js
modified: controllers/application/login/changePasswordController.js
modified: controllers/application/login/loginController.js
modified: controllers/application/login/loginWithUserName.js
modified: controllers/application/login/verifyController.js
modified: controllers/application/messages/messageController.js
modified: controllers/application/notification/notificationController.js
modified: controllers/application/offer/offerController.js
modified: controllers/application/payment/paymentController.js
modified: controllers/application/payment/paymentControllerWeb.js
modified: controllers/application/posts/likeController.js
modified: controllers/application/posts/postController.js
modified: controllers/application/profile/profileController.js
modified: controllers/application/projects/createProjectController.js
modified: controllers/application/projects/getProjectController.js
modified: controllers/application/projects/projectTypesController.js
modified: controllers/application/projects/requestProjectController.js
modified: controllers/application/projects/updateProjectController.js
modified: controllers/application/provincesController.js
modified: controllers/application/register/registerController.js
modified: controllers/application/register/userFullNameController.js
modified: controllers/application/register/userTypeController.js
modified: controllers/application/register/usernameController.js
modified: controllers/application/register/verifyController.js
modified: controllers/application/search-web/searchController.js
modified: controllers/application/search/searchController.js
modified: controllers/application/settings/settingsController.js
modified: controllers/application/tickets/ticketsController.js
modified: controllers/application/users/getUserController.js
modified: controllers/application/verify/addressController.js
modified: controllers/application/verify/authController.js
modified: controllers/application/verify/colorsController.js
modified: controllers/application/verify/conversationController.js
modified: controllers/application/verify/cooperationTypeController.js
modified: controllers/application/verify/expertiseController.js
modified: controllers/application/verify/genderController.js
modified: controllers/application/verify/servicesController.js
modified: controllers/application/verify/setNationalCardImageController.js
modified: controllers/application/verify/setProfileImageController.js
modified: controllers/application/verify/sizesController.js
modified: controllers/application/version/versionController.js
modified: controllers/application/workroom/workroomController.js
modified: controllers/panel/advertising/academyCategoryController.js
modified: controllers/panel/advertising/advertisingController.js
modified: controllers/panel/comments/advertisingCommentController.js
modified: controllers/panel/comments/commentController.js
modified: controllers/panel/expertise/expertiseController.js
modified: controllers/panel/financial/financialController.js
modified: controllers/panel/login/loginController.js
modified: controllers/panel/posts/postController.js
modified: controllers/panel/projects/projectController.js
modified: controllers/panel/projects/projectTypesController.js
modified: controllers/panel/settings/settingsController.js
modified: controllers/panel/shops/shopsController.js
modified: controllers/panel/tickets/ticketsController.js
modified: controllers/panel/users/usersController.js
modified: controllers/panel/version/versionController.js
modified: helpers/chatHelpers.js
modified: index.js
deleted: logs/sms-irs/13-03-2024.log
modified: middlewares/404.js
modified: middlewares/adminAuth.js
modified: middlewares/auth.js
modified: middlewares/blockCheck.js
modified: middlewares/exception.js
modified: middlewares/index.js
modified: middlewares/isHalfRegister.js
modified: middlewares/isRegister.js
modified: middlewares/lastOnline.js
modified: middlewares/upload.js
modified: models/AcademyCategoryModel.js
modified: models/AcademyContentModel.js
modified: models/AcademyLikeModel.js
modified: models/AcademyModel.js
modified: models/AcademyPaymentModel.js
modified: models/AdminModel.js
modified: models/AdvertisingCategoryModel.js
modified: models/AdvertisingCommentModel.js
modified: models/AdvertisingFeaturesModel.js
modified: models/AdvertisingLikeModel.js
modified: models/AdvertisingModel.js
modified: models/AdvertisingProfile.js
modified: models/AdvertisingRatingModel.js
modified: models/AdvertisingTypeModel.js
modified: models/CommentModel.js
modified: models/CourseComentModel.js
modified: models/CourseModel.js
modified: models/CoursePaymentModel.js
modified: models/ExpertiseModel.js
modified: models/IsPaymentCourseModel.js
modified: models/LikeModel.js
modified: models/MessageModel.js
modified: models/NotificationModel.js
modified: models/OfferModel.js
modified: models/OfferTypeModel.js
modified: models/PaymentModel.js
modified: models/PostModel.js
modified: models/ProjectModel.js
modified: models/RequestModel.js
modified: models/SettingsModel.js
modified: models/StateCity.js
modified: models/TaxModel.js
modified: models/TicketMessageModel.js
modified: models/TicketModel.js
modified: models/TypeAndPriceModel.js
modified: models/UserModel.js
modified: models/VersionModel.js
modified: models/license.js
modified: routes/application/academy/index.js
modified: routes/application/advertising/index.js
modified: routes/application/city/index.js
modified: routes/application/expertise/index.js
modified: routes/application/financial/index.js
modified: routes/application/login/index.js
modified: routes/application/messages/index.js
modified: routes/application/notification/index.js
modified: routes/application/offers/index.js
modified: routes/application/posts/index.js
modified: routes/application/profile/index.js
modified: routes/application/projects/index.js
modified: routes/application/provinces/index.js
modified: routes/application/register/index.js
modified: routes/application/search-web/index.js
modified: routes/application/search/index.js
modified: routes/application/settings/index.js
modified: routes/application/tickets/index.js
modified: routes/application/users/index.js
modified: routes/application/verify/index.js
modified: routes/application/version/index.js
modified: routes/application/workroom/index.js
modified: routes/index.js
modified: routes/panel/advertising/index.js
modified: routes/panel/comments/index.js
modified: routes/panel/expertise/index.js
modified: routes/panel/financial/index.js
modified: routes/panel/login/index.js
modified: routes/panel/posts/index.js
modified: routes/panel/projects/index.js
modified: routes/panel/settings/index.js
modified: routes/panel/shops/index.js
modified: routes/panel/tickets/index.js
modified: routes/panel/users/index.js
modified: routes/panel/version/index.js
modified: scripts/dns/db.modstagram.com
modified: scripts/dns/db.modstagram.ir
modified: scripts/dns/named.conf.local.snippet
modified: scripts/nginx/api.modstagram.com.conf
modified: scripts/nginx/app.modstagram.com.conf
modified: scripts/nginx/blog.modstagram.com.conf
modified: scripts/nginx/cdn.modstagram.com.conf
modified: scripts/nginx/cdn.modstagram.com.http.conf
modified: scripts/nginx/modstagram-redirects.conf
modified: scripts/nginx/modstagram.com.conf
modified: scripts/nginx/panel.modstagram.com.conf
modified: scripts/nginx/pay.modstagram.com.conf
modified: scripts/server-setup.sh
modified: services/AdvertisingCron.js
modified: services/ProjectCron.js
modified: services/TokenService.js
deleted: storage/courses/videos/course-69f8b2da55f31efffa601c57-1778257437373.mp4
deleted: storage/courses/videos/course-69f8b2da55f31efffa601c57-1778257586892.mp4
deleted: storage/courses/videos/course-69f8b2da55f31efffa601c57-1778257829783.mp4
deleted: storage/courses/videos/course-69f8b2da55f31efffa601c57-1778257903018.mp4
deleted: storage/posts/videos/1766758940571-0-video_2025-05-21_16-30-58.mp4
deleted: storage/posts/videos/1766781626514-0-video_2025-05-21_16-30-58.mp4
deleted: storage/posts/videos/1766824222908-0-Find 'modeling videos' on TikTok - TikTok Search_7.mp4
deleted: storage/posts/videos/1766824281937-0-Find 'modeling videos' on TikTok - TikTok Search_6.mp4
deleted: storage/posts/videos/1766824360366-0-Find 'bridal makeup' on TikTok - TikTok Search_4.mp4
deleted: storage/posts/videos/1766824425868-0-Find 'Makeup' on TikTok - TikTok Search_25.mp4
deleted: storage/posts/videos/1766824503238-0-Find 'Makeup' on TikTok - TikTok Search.mp4
deleted: storage/posts/videos/1766824554864-0-Jalal.hafed (@jalal.hafed) Official.mp4
deleted: storage/posts/videos/1766824618322-0-Find 'Hairdressing' on TikTok - TikTok Search_3.mp4
deleted: storage/posts/videos/1766824689078-0-Find 'Beauty clinic' on TikTok - TikTok Search_22.mp4
deleted: storage/posts/videos/1766824721659-0-Find 'Beauty clinic' on TikTok - TikTok Search_13.mp4
deleted: storage/posts/videos/1766824796958-0-Find 'photography' on TikTok - TikTok Search_6.mp4
deleted: storage/posts/videos/1766825351987-0-aaaa.mp4
deleted: storage/posts/videos/1766825448136-0-sasasa.mp4
deleted: storage/posts/videos/1766825535111-0-qqq.mp4
deleted: "storage/posts/videos/1766825855902-0-Nail desin by Labella beauty salon\360\237\214\270\360\237\222\205\360\237\217\273 #nail #nailart #manicure #manicure\360\237\222\205 #salon #pedicure #labella.mp4"
deleted: storage/posts/videos/1766825905907-0-dsdsdsdsdsds.mp4
deleted: "storage/posts/videos/1766826114243-0-Every piece of jewelry tells a story\360\237\217\271 @mirjaliligold @mohseneh_b.mp4"
deleted: "storage/posts/videos/1766826180365-0-Romeo, save me\360\237\246\242.mp4"
deleted: storage/posts/videos/1766826458195-0-aaaaa.mp4
deleted: storage/posts/videos/1766826609640-0-asasa.mp4
deleted: storage/posts/videos/1766826685281-0-s.mp4
deleted: storage/posts/videos/1766826815345-0-asasa.mp4
deleted: storage/posts/videos/1766826842822-0-aaa.mp4
deleted: "storage/posts/videos/1766827337926-0-Snow, mountains, and me\342\200\246 a story that never gets old! #backstage #stylish #snow #style#streetstyle.mp4"
deleted: "storage/posts/videos/1766828100639-0-\330\263\330\263\330\263\330\263.mp4"
deleted: storage/posts/videos/1766828130001-0-aaa.mp4
deleted: storage/posts/videos/1766828157845-0-ssss.mp4
deleted: storage/posts/videos/1766828203643-0-aaaa.mp4
deleted: "storage/posts/videos/1766828345460-0-You deserve to be happy, and you can\342\200\231t stay where your heart doesn\342\200\231t belong #\330\252\331\210\331\204\330\257\331\205_\331\205\330\250\330\247\330\261\332\251 #\330\242\330\250\333\214 #\330\247\331\207\331\210\330\247\330\262 #\330\252\331\210\331\204\330\257 #\330\250\331\204\330\247\332\257\330\261 @gallery.nilai.mp4"
deleted: storage/posts/videos/1766828424672-0-1111.mp4
deleted: storage/posts/videos/1766828464781-0-sss.mp4
deleted: storage/posts/videos/1766828486889-0-aaaa.mp4
deleted: storage/posts/videos/1766828514279-0-sss.mp4
deleted: storage/posts/videos/1766828727356-0-ddd.mp4
deleted: "storage/posts/videos/1766828816020-0-Jewlery project Brand- @houseofme_official Dop- @_alishariatt Videographer- @peyman_bozorgomid Assistant- @amir.kh.k Model- @ana.elitee #jewleryphotography #fashionreels #\330\261\333\214\331\204.mp4"
deleted: "storage/posts/videos/1766828848513-0-Some of my favorite shots Models- @saharjalilii @setayesh.ghalenoeii @parmisaadat @paaarand @asalllbayat @bitakhaajoii #photographer #\330\271\332\251\330\247\330\263\333\214_\331\201\330\264\331\206 #photosoftheday.mp4"
deleted: "storage/posts/videos/1766831745457-0-\330\263\330\263\330\263.mp4"
deleted: "storage/posts/videos/1766831795030-0-\330\264\330\264\330\264\330\264.mp4"
deleted: "storage/posts/videos/1766833279276-0-\330\247\330\262 \332\206\330\264\330\247\331\205 \331\207\331\204\330\252 \330\257\330\247\330\257\331\205\342\200\214 \331\210\331\204\333\214 .....mp4"
deleted: "storage/posts/videos/1766835292259-0-\330\263\333\214\330\263.mp4"
deleted: storage/posts/videos/1766835327424-0-a.mp4
deleted: storage/posts/videos/1766835787091-0-s.mp4
deleted: storage/posts/videos/1767012113143-0-aaa.mp4
deleted: "storage/posts/videos/1767012137018-0-Makeup by-\360\237\221\207\360\237\217\275\360\237\215\267 @pegah.mua @kiavash_royalvideo.mp4"
deleted: storage/posts/videos/1767012672738-0-dddd.mp4
deleted: storage/posts/videos/1767012722043-0-Instagram.mp4
deleted: "storage/posts/videos/1768740975998-0-Faouzia\343\200\212Desert Rose\343\200\213.mp4"
deleted: storage/posts/videos/1768741493380-0-a.mp4
deleted: "storage/posts/videos/1771318409261-0-\330\266\330\265\330\266\330\265\330\266\330\265\330\266.mp4"
deleted: "storage/posts/videos/1771319189820-0-\330\263\330\263\330\263\330\263.mp4"
deleted: storage/posts/videos/1771937200099-0-WhatsApp Video 2025-05-17 at 11.50.09.mp4
deleted: storage/posts/videos/1772005435124-0-qqqq.mp4
deleted: storage/posts/videos/1772005611958-0-aaaaa.mp4
deleted: storage/posts/videos/1772006456443-0-qqqqww.mp4
deleted: storage/posts/videos/1772006543741-0-1111.mp4
deleted: storage/posts/videos/1772006606627-0-wewewe.mp4
deleted: storage/posts/videos/1772006663579-0-wwww.mp4
deleted: storage/posts/videos/1772006685382-0-333.mp4
deleted: storage/posts/videos/1772006740696-0-www.mp4
deleted: storage/posts/videos/1772006786181-0-4444.mp4
deleted: storage/posts/videos/1772009213487-0-aaaa.mp4
deleted: storage/posts/videos/1772009260843-0-sss.mp4
deleted: "storage/posts/videos/1772013946491-0-\330\250\330\250\330\250\330\250\330\250.mp4"
deleted: "storage/posts/videos/1772089789739-0-\330\266\330\266\330\266\330\266.mp4"
deleted: storage/posts/videos/1772090631353-0-qqqq.mp4
deleted: "storage/posts/videos/1772092053138-0-\330\265\330\265\330\265.mp4"
deleted: storage/posts/videos/1772101142214-0-2222.mp4
deleted: "storage/posts/videos/1772101261385-0-\330\266\330\266\330\266\330\266.mp4"
deleted: storage/posts/videos/1772101312006-0-Instagram.mp4
deleted: "storage/posts/videos/1772101434744-0-\330\263\333\214\330\263\333\214\330\263\333\214.mp4"
deleted: "storage/posts/videos/1772203614700-0-\330\263\330\247\331\205\330\250\330\261\331\207 \330\250\331\204\331\210\331\206\330\257 \330\250\330\261\330\247\333\214 \331\201\330\247\330\267\331\205\331\207 \330\271\330\262\333\214\330\262\331\205\360\237\222\225.mp4"
deleted: "storage/posts/videos/1772203641829-0-\330\257\332\251\331\204\330\261\331\207 \331\210 \330\261\331\206\332\257 \331\210 \332\251\331\210\330\252\330\247\331\207\333\214 \330\250\330\261\330\247\333\214 \330\263\331\210\330\257\330\247 \331\202\330\264\331\206\332\257\331\205\360\237\222\225.mp4"
deleted: "storage/posts/videos/1772203698315-0-\330\247\333\214\331\206 \332\251\330\247\330\261 \330\262\333\214\330\250\330\247\331\205\331\210\331\206 \330\250\330\261\330\247\333\214 \330\255\330\250\333\214\330\250\331\207 \330\256\330\247\331\206\331\205 \330\271\330\262\333\214\330\262\360\237\222\225.mp4"
deleted: "storage/posts/videos/1772205300232-0-\330\264\330\264\330\264\330\264.mp4"
deleted: "storage/posts/videos/1772205333900-0-\330\265\330\265\330\265\330\265\330\265.mp4"
deleted: "storage/posts/videos/1772207461030-0-\330\265\330\265\330\265.mp4"
deleted: "storage/posts/videos/1772207616124-0-\330\264\330\264\330\264.mp4"
deleted: "storage/posts/videos/1772207684446-0-\330\253\330\253\330\253\330\253.mp4"
deleted: "storage/posts/videos/1772208440984-0-\331\201\331\201\331\201.mp4"
deleted: "storage/posts/videos/1772208506469-0-\330\253\330\253\330\253\330\253.mp4"
deleted: "storage/posts/videos/1772208627195-0-\330\264\330\264\330\264\330\264.mp4"
deleted: "storage/posts/videos/1772208646258-0-\330\250\330\263\333\214\330\263.mp4"
deleted: storage/posts/videos/1772208704438-0-111.mp4
deleted: "storage/posts/videos/1772211057722-0-\330\266\330\266\330\266.mp4"
deleted: "storage/posts/videos/1772211118907-0-\330\265\330\265\330\265\330\265.mp4"
deleted: "storage/posts/videos/1772211184550-0-\330\253\330\253\330\253.mp4"
deleted: "storage/posts/videos/1772211618341-0-\330\265\330\265\330\265\330\265.mp4"
deleted: storage/posts/videos/1772211740270-0-4444.mp4
2026-07-05 15:59:26 +03:30
root
b245e7b71a
Add full project files
2026-07-04 19:24:56 +03:30