Последняя версия с сервера прошлого разработчика

This commit is contained in:
2025-07-10 04:35:51 +00:00
commit c731570032
1174 changed files with 134314 additions and 0 deletions

View File

@@ -0,0 +1,136 @@
<?php
namespace App\Domain\Feeds\DataTransferObjects;
use App\Domain\Feeds\Enums\CollectionMediaEnum;
use App\Domain\Feeds\Service\FeedMediaTransform;
use Spatie\DataTransferObject\DataTransferObject;
class FeedData extends DataTransferObject
{
public static function fromAds($feed)
{
$user = new \stdClass();
$user->id = 999999;
$user->name = 'Реклама';
$user->username = 'Реклама';
$user->color = '#795541';
$user->user_char = 'AD';
return [
'id' => $feed->id,
'type' => $feed->type,
'user' => (array)$user,
'entity' => self::fromDataAds($feed, CollectionMediaEnum::COMMON()),
];
}
public static function fromDataAds($feed, $collection_media_name)
{
$entity = (object) [];
$entity->title = $feed->title;
$entity->body = nl2br($feed->body);
$entity->views_count = $feed->views_count;
$entity->slug = $feed->slug;
$entity->type = $feed->type;
$entity->created_at_humans = $feed->created_at->diffForHumans();
$mediaTransform = (new FeedMediaTransform($feed))
->addCollectionMediaName($collection_media_name)
->spot();
$entity->preview = $mediaTransform['preview'];
$entity->collection_medias = $mediaTransform['medias'];
$entity->is_ads = true;
$entity->is_repost = false;
$entity->price = null;
$entity->is_paid = 0;
$entity->likes = 0;
$entity->liked = false;
$entity->tags = [];
$entity->status = 1;
$entity->comments = 0;
return $entity;
}
public static function fromDataBaseWithUser($feed, $purchased_subscriptions_by_users = [])
{
$feed_is_restrict = false;
$feed_is_restrict_name = '';
$feed_user_id = $feed->user_id;
$is_my_feed = false;
if(auth()->user()){
$is_my_feed = auth()->user()->id === $feed_user_id;
}
$feed_is_semi_paid = $feed->is_paid === 2;
// $is_adult_feed = false;
// $is_my_settings_adult_restrict = auth()->user()->allow_adult_content;
$restrict_feed_adult = false;
// if(($is_my_settings_adult_restrict === false && $is_adult_feed) && $is_my_feed === false){
// $feed_is_restrict_name = 'adults';
// $restrict_feed_adult = true;
// }
$private_user_feed = $feed->user->private;
$restrict_feed_private_account = false;
if(($feed_is_semi_paid && $private_user_feed && !in_array($feed_user_id, $purchased_subscriptions_by_users)) && $is_my_feed === false){
$feed_is_restrict_name = 'prohibited';
$restrict_feed_private_account = true;
}
if($restrict_feed_adult || $restrict_feed_private_account){
$feed_is_restrict = true;
}
$user = $feed->user->only('id', 'name', 'username', 'photo_path', 'color', 'user_char', 'private');
return [
'id' => $feed->id,
'type' => $feed_is_restrict ? $feed_is_restrict_name : $feed->type,
'user' => $user,
'entity' => $feed_is_restrict ? null : self::fromData($feed, CollectionMediaEnum::COMMON()),
];
}
public static function fromData($feed, $collection_media_name)
{
$entity = (object) [];
$entity->title = $feed->title;
$entity->body = $feed->body;
$entity->views_count = $feed->views_count;
$entity->price = $feed->price;
$entity->is_paid = $feed->is_paid;
$entity->is_ads = false;
// $entity->is_adult = $feed->is_adult;
$entity->slug = $feed->slug;
$entity->type = $feed->type;
$entity->is_repost = $feed->is_repost;
$entity->likes = $feed->likes_count;
$entity->liked = $feed->liked ?? false;
$entity->tags = $feed->tags;
$entity->status = $feed->status;
$entity->comments = $feed->comments_count;
$entity->created_at_humans = $feed->created_at->diffForHumans();
$mediaTransform = (new FeedMediaTransform($feed))
->addCollectionMediaName($collection_media_name)
->spot();
$entity->preview = $mediaTransform['preview'];
$entity->collection_medias = $mediaTransform['medias'];
return $entity;
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Domain\Feeds\DataTransferObjects;
use Spatie\DataTransferObject\DataTransferObjectCollection;
class FeedDataCollection extends DataTransferObjectCollection
{
public static function create(array $data)
{
return new static(FeedData::arrayOf($data));
}
}