Bladeren bron

feat(models): adiciona entidades

ebagabee 1 week geleden
bovenliggende
commit
8e73bbcd2a

+ 30 - 0
app/Models/FnmBaseBracket.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * @property int $id
+ * @property string $description
+ * @property int $start_month
+ * @property int|null $end_month
+ * @property float $percentage
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ */
+class FnmBaseBracket extends Model
+{
+    use HasFactory;
+
+    protected $table = 'fnm_base_brackets';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'percentage' => 'decimal:4',
+        'created_at' => 'datetime',
+        'updated_at' => 'datetime',
+    ];
+}

+ 38 - 0
app/Models/FranchiseeFnmBracket.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+
+/**
+ * @property int $id
+ * @property int $franchisee_id
+ * @property string $description
+ * @property int $start_month
+ * @property int|null $end_month
+ * @property float $percentage
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ * @property-read \App\Models\Franchisee $franchisee
+ */
+class FranchiseeFnmBracket extends Model
+{
+    use HasFactory;
+
+    protected $table = 'franchisee_fnm_brackets';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'percentage' => 'decimal:4',
+        'created_at' => 'datetime',
+        'updated_at' => 'datetime',
+    ];
+
+    public function franchisee(): BelongsTo
+    {
+        return $this->belongsTo(Franchisee::class, 'franchisee_id');
+    }
+}

+ 38 - 0
app/Models/FranchiseeMaintenanceBracket.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+
+/**
+ * @property int $id
+ * @property int $franchisee_id
+ * @property string $description
+ * @property int $start_month
+ * @property int|null $end_month
+ * @property float $percentage
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ * @property-read \App\Models\Franchisee $franchisee
+ */
+class FranchiseeMaintenanceBracket extends Model
+{
+    use HasFactory;
+
+    protected $table = 'franchisee_maintenance_brackets';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'percentage' => 'decimal:4',
+        'created_at' => 'datetime',
+        'updated_at' => 'datetime',
+    ];
+
+    public function franchisee(): BelongsTo
+    {
+        return $this->belongsTo(Franchisee::class, 'franchisee_id');
+    }
+}

+ 38 - 0
app/Models/FranchiseeRoyaltiesBracket.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+
+/**
+ * @property int $id
+ * @property int $franchisee_id
+ * @property string $description
+ * @property int $start_month
+ * @property int|null $end_month
+ * @property float $percentage
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ * @property-read \App\Models\Franchisee $franchisee
+ */
+class FranchiseeRoyaltiesBracket extends Model
+{
+    use HasFactory;
+
+    protected $table = 'franchisee_royalties_brackets';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'percentage' => 'decimal:4',
+        'created_at' => 'datetime',
+        'updated_at' => 'datetime',
+    ];
+
+    public function franchisee(): BelongsTo
+    {
+        return $this->belongsTo(Franchisee::class, 'franchisee_id');
+    }
+}

+ 78 - 0
app/Models/FranchiseeTbr.php

@@ -0,0 +1,78 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+
+/**
+ * @property int $id
+ * @property int $franchisee_id
+ * @property int $contract_id
+ * @property int $inhabitant_classification_id
+ * @property int $year
+ * @property float $tbr_value
+ * @property \Carbon\Carbon $start_date
+ * @property int $invoice_due_day
+ * @property float $base_royalties_percentage
+ * @property float $base_fnm_percentage
+ * @property int|null $franchisee_royalties_bracket_id
+ * @property int|null $franchisee_fnm_bracket_id
+ * @property int|null $franchisee_maintenance_bracket_id
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ * @property-read \App\Models\Franchisee $franchisee
+ * @property-read \App\Models\FranchiseeContract $contract
+ * @property-read \App\Models\InhabitantClassification $inhabitantClassification
+ * @property-read \App\Models\FranchiseeRoyaltiesBracket|null $royaltiesBracket
+ * @property-read \App\Models\FranchiseeFnmBracket|null $fnmBracket
+ * @property-read \App\Models\FranchiseeMaintenanceBracket|null $maintenanceBracket
+ */
+class FranchiseeTbr extends Model
+{
+    use HasFactory;
+
+    protected $table = 'franchisee_tbrs';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'tbr_value'               => 'decimal:2',
+        'base_royalties_percentage' => 'decimal:4',
+        'base_fnm_percentage'     => 'decimal:4',
+        'start_date'              => 'date',
+        'created_at'              => 'datetime',
+        'updated_at'              => 'datetime',
+    ];
+
+    public function franchisee(): BelongsTo
+    {
+        return $this->belongsTo(Franchisee::class, 'franchisee_id');
+    }
+
+    public function contract(): BelongsTo
+    {
+        return $this->belongsTo(FranchiseeContract::class, 'contract_id');
+    }
+
+    public function inhabitantClassification(): BelongsTo
+    {
+        return $this->belongsTo(InhabitantClassification::class, 'inhabitant_classification_id');
+    }
+
+    public function royaltiesBracket(): BelongsTo
+    {
+        return $this->belongsTo(FranchiseeRoyaltiesBracket::class, 'franchisee_royalties_bracket_id');
+    }
+
+    public function fnmBracket(): BelongsTo
+    {
+        return $this->belongsTo(FranchiseeFnmBracket::class, 'franchisee_fnm_bracket_id');
+    }
+
+    public function maintenanceBracket(): BelongsTo
+    {
+        return $this->belongsTo(FranchiseeMaintenanceBracket::class, 'franchisee_maintenance_bracket_id');
+    }
+}

+ 27 - 0
app/Models/InhabitantClassification.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * @property int $id
+ * @property string $description
+ * @property string $acronym
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ */
+class InhabitantClassification extends Model
+{
+    use HasFactory;
+
+    protected $table = 'inhabitant_classifications';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'created_at' => 'datetime',
+        'updated_at' => 'datetime',
+    ];
+}

+ 30 - 0
app/Models/MaintenanceBaseBracket.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * @property int $id
+ * @property string $description
+ * @property int $start_month
+ * @property int|null $end_month
+ * @property float $percentage
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ */
+class MaintenanceBaseBracket extends Model
+{
+    use HasFactory;
+
+    protected $table = 'maintenance_base_brackets';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'percentage' => 'decimal:4',
+        'created_at' => 'datetime',
+        'updated_at' => 'datetime',
+    ];
+}

+ 30 - 0
app/Models/RoyaltiesBaseBracket.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * @property int $id
+ * @property string $description
+ * @property int $start_month
+ * @property int|null $end_month
+ * @property float $percentage
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ */
+class RoyaltiesBaseBracket extends Model
+{
+    use HasFactory;
+
+    protected $table = 'royalties_base_brackets';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'percentage' => 'decimal:4',
+        'created_at' => 'datetime',
+        'updated_at' => 'datetime',
+    ];
+}

+ 28 - 0
app/Models/Tbr.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * @property int $id
+ * @property int $year
+ * @property float $tbr_value
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ */
+class Tbr extends Model
+{
+    use HasFactory;
+
+    protected $table = 'tbrs';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'tbr_value'  => 'decimal:2',
+        'created_at' => 'datetime',
+        'updated_at' => 'datetime',
+    ];
+}

+ 99 - 0
app/Models/TbrCalculation.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+
+/**
+ * @property int $id
+ * @property int $unit_id
+ * @property float $revenue_value
+ * @property int $contract_month_reference
+ * @property float $tbr_value
+ * @property int $fnm_bracket_id
+ * @property float $fnm_bracket_percentage
+ * @property float $fnm_bracket_value
+ * @property int $maintenance_bracket_id
+ * @property float $maintenance_bracket_percentage
+ * @property float $maintenance_bracket_value
+ * @property int $royalties_bracket_id
+ * @property float $royalties_bracket_percentage
+ * @property float $royalties_bracket_value
+ * @property float $fnm_effective_percentage
+ * @property float $fnm_effective_value
+ * @property float $royalties_effective_percentage
+ * @property float $royalties_effective_value
+ * @property float $maintenance_effective_percentage
+ * @property float $maintenance_effective_value
+ * @property float $bracket_subtotal
+ * @property float $subtotal
+ * @property float $final_value
+ * @property int $user_id
+ * @property string $royalties_applied_criteria
+ * @property bool $receivable_generated
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ * @property-read \App\Models\Unit $unit
+ * @property-read \App\Models\FranchiseeFnmBracket $fnmBracket
+ * @property-read \App\Models\FranchiseeMaintenanceBracket $maintenanceBracket
+ * @property-read \App\Models\FranchiseeRoyaltiesBracket $royaltiesBracket
+ * @property-read \App\Models\User $user
+ */
+class TbrCalculation extends Model
+{
+    use HasFactory;
+
+    protected $table = 'tbr_calculations';
+
+    protected $guarded = ['id'];
+
+    protected $casts = [
+        'revenue_value'                  => 'decimal:2',
+        'tbr_value'                      => 'decimal:2',
+        'fnm_bracket_percentage'         => 'decimal:4',
+        'fnm_bracket_value'              => 'decimal:2',
+        'maintenance_bracket_percentage' => 'decimal:4',
+        'maintenance_bracket_value'      => 'decimal:2',
+        'royalties_bracket_percentage'   => 'decimal:4',
+        'royalties_bracket_value'        => 'decimal:2',
+        'fnm_effective_percentage'       => 'decimal:4',
+        'fnm_effective_value'            => 'decimal:2',
+        'royalties_effective_percentage' => 'decimal:4',
+        'royalties_effective_value'      => 'decimal:2',
+        'maintenance_effective_percentage' => 'decimal:4',
+        'maintenance_effective_value'    => 'decimal:2',
+        'bracket_subtotal'               => 'decimal:2',
+        'subtotal'                       => 'decimal:2',
+        'final_value'                    => 'decimal:2',
+        'receivable_generated'           => 'boolean',
+        'created_at'                     => 'datetime',
+        'updated_at'                     => 'datetime',
+    ];
+
+    public function unit(): BelongsTo
+    {
+        return $this->belongsTo(Unit::class, 'unit_id');
+    }
+
+    public function fnmBracket(): BelongsTo
+    {
+        return $this->belongsTo(FranchiseeFnmBracket::class, 'fnm_bracket_id');
+    }
+
+    public function maintenanceBracket(): BelongsTo
+    {
+        return $this->belongsTo(FranchiseeMaintenanceBracket::class, 'maintenance_bracket_id');
+    }
+
+    public function royaltiesBracket(): BelongsTo
+    {
+        return $this->belongsTo(FranchiseeRoyaltiesBracket::class, 'royalties_bracket_id');
+    }
+
+    public function user(): BelongsTo
+    {
+        return $this->belongsTo(User::class, 'user_id');
+    }
+}