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

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,34 @@
<?php
namespace App\Domain\Users\DataTransferObjects;
use App\Models\User;
use Spatie\DataTransferObject\DataTransferObject;
class UserData extends DataTransferObject
{
public $id;
public $name;
public $user_char;
public $color;
public $photo_path;
public $banner_path;
public $username;
public $private;
public $is_auth_user;
public static function fromModel(User $user)
{
$idCheck = auth()->user() ? $user->id === auth()->user()->id : false;
return new self([
'id' => $user->id,
'name' => $user->name,
'user_char' => $user->user_char,
'color' => $user->color,
'photo_path' => $user->photo_path,
'banner_path' => $user->banner_path,
'username' => $user->username,
'private' => $user->private,
'is_auth_user' => $idCheck,
]);
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Domain\Users\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use App\Models\Model;
class UserPackage extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,54 @@
<?php
namespace App\Domain\Users\Observers;
use App\Models\User;
use Illuminate\Support\Arr;
// use App\Domain\Points\Models\Point;
// use App\Domain\Points\Enums\DirectionEnum;
class UserObserver
{
public function creating(User $user)
{
$user->color = $this->generateColors();
if(!$user->username){
$user->username = 'id_' . uniqid();
}
}
public function created(User $user)
{
// if($user->username != 'inner_systemuser_api'){
// $point = new Point;
// $point->user_id = $user->id;
// $point->point = 100;
// $point->type = 'Тестовое пополнение'; //YSV ENUM!
// $point->direction = DirectionEnum::COMING();
// $point->save();
// }
}
public function saving(User $user)
{
$user->user_char = $this->getChar($user);
}
private function generateColors()
{
$colors = ['#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#4caf50', '#8bc34a', '#ffc107', '#ff9800', '#ff5722', '#795548', '#9e9e9e', '#607d8b', '#f44331', '#e91e61', '#9c27b1', '#673ab1', '#3f51b1', '#2196f1', '#03a9f1', '#00bcd1', '#009681', '#4caf51', '#8bc341', '#ffc101', '#ff9801', '#ff5721', '#795541', '#9e9e91', '#607d81'];
return Arr::random($colors);
}
private function getChar($user)
{
$fname = mb_strtoupper($user->first_name);
$lname = @$user->last_name;
if($lname){
$lname = mb_strtoupper($lname);
return mb_substr($fname, 0, 1) . mb_substr($lname, 0, 1);
}
return mb_substr($fname, 0, 1) . mb_substr($fname, 1, 1);
}
}

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Domain\Users\Service;
use Illuminate\Database\Eloquent\Builder;
class ProfileDataService
{
public static function get($user)
{
$gues = auth()->user();
if($gues){
$gues = auth()->user()->id;
}else{
$gues = null;
}
$user->loadCount(['subscriber_reverse as is_sub' => function (Builder $query) use($gues) {
$query->where('user_id', $gues);
},'subscribers as is_reader' => function (Builder $query) use($gues) {
$query->where('subscriber_id', $gues);
}])->withCasts(['is_sub' => 'boolean', 'is_reader' => 'boolean']);
$is_leader = false;
if($user->is_sub && auth()->user()){
$leader = auth()->user()->subscribers()->where('subscriber_id', $user->id)->first();
if($leader){
$is_leader = (boolean)$leader->pivot->leader;
}
}
$count_feeds = $user->feeds()->count();
$count_readable = $user->subscribers()->count();
$count_subscribers = $user->subscriber_reverse()->count();
$is_auth_user = $user->id === $gues;
if($is_auth_user){
$close_account = false;
}else{
$close_account = $user->private == true && ($user->is_sub == 0 || $user->is_reader == 0);
}
$object = new \stdClass();
$object->user = $user;
$object->count_feeds = $count_feeds;
$object->count_readable = $count_readable;
$object->count_subscribers = $count_subscribers;
$object->close_account = $close_account;
$object->is_leader = $is_leader;
return $object;
}
}