mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-14 19:22:14 +01:00
Migrated endpoints from user to member; Renamed membership to member
This commit is contained in:
@@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace App\Models;
|
||||
|
||||
use App\Models\Concerns\HasUuids;
|
||||
use Database\Factories\MembershipFactory;
|
||||
use Database\Factories\MemberFactory;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Laravel\Jetstream\Membership as JetstreamMembership;
|
||||
@@ -21,9 +21,9 @@ use Laravel\Jetstream\Membership as JetstreamMembership;
|
||||
* @property-read Organization $organization
|
||||
* @property-read User $user
|
||||
*
|
||||
* @method static MembershipFactory factory()
|
||||
* @method static MemberFactory factory()
|
||||
*/
|
||||
class Membership extends JetstreamMembership
|
||||
class Member extends JetstreamMembership
|
||||
{
|
||||
use HasFactory;
|
||||
use HasUuids;
|
||||
@@ -33,10 +33,10 @@ class Membership extends JetstreamMembership
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $table = 'organization_user';
|
||||
protected $table = 'members';
|
||||
|
||||
/**
|
||||
* @return BelongsTo<User, Membership>
|
||||
* @return BelongsTo<User, Member>
|
||||
*/
|
||||
public function user(): BelongsTo
|
||||
{
|
||||
@@ -44,7 +44,7 @@ class Membership extends JetstreamMembership
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BelongsTo<Organization, Membership>
|
||||
* @return BelongsTo<Organization, Member>
|
||||
*/
|
||||
public function organization(): BelongsTo
|
||||
{
|
||||
@@ -30,7 +30,7 @@ use Laravel\Jetstream\Team as JetstreamTeam;
|
||||
* @property Collection<int, User> $users
|
||||
* @property Collection<int, User> $realUsers
|
||||
* @property-read Collection<int, OrganizationInvitation> $teamInvitations
|
||||
* @property Membership $membership
|
||||
* @property Member $membership
|
||||
*
|
||||
* @method HasMany<OrganizationInvitation> teamInvitations()
|
||||
* @method static OrganizationFactory factory()
|
||||
|
||||
@@ -14,9 +14,11 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
/**
|
||||
* @property string $id
|
||||
* @property int|null $billable_rate
|
||||
* @property string $project_id
|
||||
* @property string $user_id
|
||||
* @property string $project_id Project ID
|
||||
* @property string $member_id Member ID
|
||||
* @property string $user_id User ID (legacy)
|
||||
* @property-read Project $project
|
||||
* @property-read Member $member
|
||||
* @property-read User $user
|
||||
*
|
||||
* @method static Builder<ProjectMember> whereBelongsToOrganization(Organization $organization)
|
||||
@@ -45,6 +47,8 @@ class ProjectMember extends Model
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use member relationship instead
|
||||
*
|
||||
* @return BelongsTo<User, ProjectMember>
|
||||
*/
|
||||
public function user(): BelongsTo
|
||||
@@ -52,6 +56,14 @@ class ProjectMember extends Model
|
||||
return $this->belongsTo(User::class, 'user_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BelongsTo<Member, ProjectMember>
|
||||
*/
|
||||
public function member(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Member::class, 'member_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder<ProjectMember> $builder
|
||||
*/
|
||||
|
||||
@@ -65,9 +65,14 @@ class Task extends Model
|
||||
return $this->hasMany(TimeEntry::class, 'task_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder<Task> $builder
|
||||
* @return Builder<Task>
|
||||
*/
|
||||
public function scopeVisibleByUser(Builder $builder, User $user): Builder
|
||||
{
|
||||
return $builder->whereHas('project', function (Builder $builder) use ($user): Builder {
|
||||
/** @var Builder<Project> $builder */
|
||||
return $builder->visibleByUser($user);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,7 +24,9 @@ use Korridor\LaravelComputedAttributes\ComputedAttributes;
|
||||
* @property bool $billable
|
||||
* @property array $tags
|
||||
* @property string $user_id
|
||||
* @property string $member_id
|
||||
* @property-read User $user
|
||||
* @property-read Member $member
|
||||
* @property string $organization_id
|
||||
* @property-read Organization $organization
|
||||
* @property string|null $project_id
|
||||
@@ -91,6 +93,14 @@ class TimeEntry extends Model
|
||||
return $this->belongsTo(User::class, 'user_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BelongsTo<Member, TimeEntry>
|
||||
*/
|
||||
public function member(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Member::class, 'member_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BelongsTo<Organization, TimeEntry>
|
||||
*/
|
||||
|
||||
@@ -43,7 +43,7 @@ use Laravel\Passport\HasApiTokens;
|
||||
* @property string $current_team_id
|
||||
* @property Collection<int, Organization> $organizations
|
||||
* @property Collection<int, TimeEntry> $timeEntries
|
||||
* @property Membership $membership
|
||||
* @property Member $membership
|
||||
*
|
||||
* @method HasMany<Organization> ownedTeams()
|
||||
* @method static UserFactory factory()
|
||||
@@ -136,7 +136,7 @@ class User extends Authenticatable implements FilamentUser, MustVerifyEmail
|
||||
*/
|
||||
public function organizations(): BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(Organization::class, Membership::class)
|
||||
return $this->belongsToMany(Organization::class, Member::class)
|
||||
->withPivot([
|
||||
'id',
|
||||
'role',
|
||||
|
||||
Reference in New Issue
Block a user