first commit

This commit is contained in:
Simon Pocrnjič
2024-10-28 21:08:16 +01:00
commit 90a5858320
199 changed files with 21177 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Account extends Model
{
/** @use HasFactory<\Database\Factories\Person/AccountFactory> */
use HasFactory;
public function debtor(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\Person::class, 'debtor_id');
}
public function client(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\Person::class, 'client_id');
}
public function type(): BelongsTo
{
return $this->belongsTo(\App\Models\AccountType::class);
}
public function debts(): HasMany
{
return $this->hasMany(\App\Models\Debt::class);
}
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AccountType extends Model
{
use HasFactory;
}
+46
View File
@@ -0,0 +1,46 @@
<?php
namespace App\Models;
use App\Traits\Uuid;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Contract extends Model
{
/** @use HasFactory<\Database\Factories\ContractFactory> */
use HasFactory;
use Uuid;
protected $fillable = [
'reference',
'start_date',
'end_date',
'client_id',
'debtor_id',
'type_id',
'description'
];
protected $hidden = [
'client_id',
'debtor_id',
'type_id'
];
public function type(): BelongsTo
{
return $this->belongsTo(\App\Models\ContractType::class, 'type_id');
}
public function debtor(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\Person::class, 'debtor_id');
}
public function segments(): BelongsToMany {
return $this->belongsToMany(\App\Models\Segment::class);
}
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ContractType extends Model
{
use HasFactory;
}
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Debt extends Model
{
use HasFactory;
public function account(): BelongsTo
{
return $this->belongsTo(\App\Models\Account::class);
}
public function type(): BelongsTo
{
return $this->belongsTo(\App\Models\DebtType::class);
}
public function payments(): HasMany
{
return $this->hasMany(\App\Models\Payment::class);
}
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DebtType extends Model
{
use HasFactory;
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Payment extends Model
{
use HasFactory;
public function type(): BelongsTo
{
return $this->belongsTo(\App\Models\PaymentType::class);
}
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PaymentType extends Model
{
use HasFactory;
}
+12
View File
@@ -0,0 +1,12 @@
<?php
namespace App\Models\Person;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AddressType extends Model
{
/** @use HasFactory<\Database\Factories\Person/AddressTypeFactory> */
use HasFactory;
}
+83
View File
@@ -0,0 +1,83 @@
<?php
namespace App\Models\Person;
use App\Traits\Uuid;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Laravel\Sanctum\HasApiTokens;
class Person extends Model
{
use HasApiTokens;
/** @use HasFactory<\Database\Factories\Person/PersonFactory> */
use HasFactory;
use Uuid;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $table = 'person';
protected $fillable = [
'nu',
'first_name',
'last_name',
'full_name',
'gender',
'birthday',
'tax_number',
'social_security_number',
'description',
'group_id',
'type_id',
'user_id'
];
protected $hidden = [
'id',
'deleted',
'user_id'
];
public function phones(): HasMany
{
return $this->hasMany(\App\Models\Person\PersonPhone::class)
->with(['type'])
->where('active','=',1);
}
public function addresses(): HasMany
{
return $this->hasMany(\App\Models\Person\PersonAddress::class)
->with(['type'])
->where('active','=',1);
}
public function group(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\PersonGroup::class, 'group_id');
}
public function type(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\PersonType::class, 'type_id');
}
public function contracts(): HasMany
{
return $this->hasMany(\App\Models\Contract::class, 'client_id')
->with('debtor', fn($que) =>
$que->with(['type', 'group'])
->whereHas('type', fn($tque) => $tque->where('deleted','=',0))
->whereHas('group', fn($tque) => $tque->where('deleted','=',0))
->where('active','=',1))
->with('type', fn($que) => $que->where('deleted','=',0))
->where('active', '=', 1);
}
}
+38
View File
@@ -0,0 +1,38 @@
<?php
namespace App\Models\Person;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class PersonAddress extends Model
{
/** @use HasFactory<\Database\Factories\Person/PersonAddressFactory> */
use HasFactory;
protected $fillable = [
'address',
'country',
'type_id',
'description',
'person_id',
'user_id'
];
protected $hidden = [
'user_id',
'person_id',
'deleted'
];
public function person(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\Person::class);
}
public function type(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\AddressType::class, 'type_id');
}
}
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace App\Models\Person;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class PersonGroup extends Model
{
/** @use HasFactory<\Database\Factories\Person/PersonGroupFactory> */
use HasFactory;
public function persons(): HasMany
{
return $this->hasMany(\App\Models\Person\Person::class);
}
}
+30
View File
@@ -0,0 +1,30 @@
<?php
namespace App\Models\Person;
use Blade;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class PersonPhone extends Model
{
/** @use HasFactory<\Database\Factories\Person/PersonPhoneFactory> */
use HasFactory;
protected $hidden = [
'user_id',
'person_id',
'deleted'
];
public function person(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\Person::class);
}
public function type(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\PhoneType::class, 'type_id');
}
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Models\Person;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class PersonType extends Model
{
/** @use HasFactory<\Database\Factories\Person/PersonTypeFactory> */
use HasFactory;
protected $fillable = [
'name',
'description'
];
public function persons(): HasMany
{
return $this->hasMany(\App\Models\Person\Person::class);
}
}
+12
View File
@@ -0,0 +1,12 @@
<?php
namespace App\Models\Person;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PhoneType extends Model
{
/** @use HasFactory<\Database\Factories\Person/PhoneTypeFactory> */
use HasFactory;
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Segment extends Model
{
/** @use HasFactory<\Database\Factories\SegmentFactory> */
use HasFactory;
public function contracts(): BelongsToMany {
return $this->belongsToMany(\App\Models\Contract::class);
}
}
+67
View File
@@ -0,0 +1,67 @@
<?php
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Fortify\TwoFactorAuthenticatable;
use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens;
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasFactory;
use HasProfilePhoto;
use Notifiable;
use TwoFactorAuthenticatable;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for serialization.
*
* @var array<int, string>
*/
protected $hidden = [
'password',
'remember_token',
'two_factor_recovery_codes',
'two_factor_secret',
];
/**
* The accessors to append to the model's array form.
*
* @var array<int, string>
*/
protected $appends = [
'profile_photo_url',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
}