update project
This commit is contained in:
+3
@@ -0,0 +1,3 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\ExportTemplates;
|
||||
final class FamilySummaryExportTemplate {}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\ExportTemplates;
|
||||
final class QuranProgressExportTemplate {}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use App\Domain\IslamicSundaySchool\Reporting\Reports\{QuranProgressReport,ArabicLevelReport,IslamicStudiesProgressReport,HalaqaAttendanceReport,SundayProgramAttendanceReport,MasjidFamilySummaryReport,VolunteerTeamReport,IslamicSundaySchoolDashboardReport};
|
||||
|
||||
final class IslamicSundaySchoolReportingServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register(): void
|
||||
{
|
||||
$this->app->tag([
|
||||
QuranProgressReport::class,
|
||||
ArabicLevelReport::class,
|
||||
IslamicStudiesProgressReport::class,
|
||||
HalaqaAttendanceReport::class,
|
||||
SundayProgramAttendanceReport::class,
|
||||
MasjidFamilySummaryReport::class,
|
||||
VolunteerTeamReport::class,
|
||||
IslamicSundaySchoolDashboardReport::class,
|
||||
], 'schoolcore.reports');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\ReadModels;
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
final class ArabicProgressReadModel { public function rows(SchoolContext $context, array $filters = []): array { return []; } }
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\ReadModels;
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
final class HalaqaReportReadModel { public function rows(SchoolContext $context, array $filters = []): array { return []; } }
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\ReadModels;
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
final class IslamicStudiesProgressReadModel { public function rows(SchoolContext $context, array $filters = []): array { return []; } }
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\ReadModels;
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
final class MasjidFamilyReportReadModel { public function rows(SchoolContext $context, array $filters = []): array { return []; } }
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\ReadModels;
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
final class QuranProgressReadModel { public function rows(SchoolContext $context, array $filters = []): array { return []; } }
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Domain\SchoolCore\Reporting\DTO\ReportResultData;
|
||||
|
||||
final class ArabicLevelReport extends BaseIslamicSundaySchoolReport
|
||||
{
|
||||
public function key(): string { return 'islamic.arabic_level'; }
|
||||
public function name(): string { return 'Arabic Level'; }
|
||||
public function columns(): array { return [['key' => 'note', 'label' => 'Note', 'sensitive' => false]]; }
|
||||
public function sensitiveColumns(): array { return ['sensitive_notes']; }
|
||||
public function run(SchoolContext $context, array $filters = []): ReportResultData
|
||||
{
|
||||
return new ReportResultData($this->key(), $this->columns(), [[
|
||||
'school_id' => $context->schoolId,
|
||||
'report_key' => $this->key(),
|
||||
'note' => 'Extension report scaffold. Wire this to Islamic Sunday School read models.',
|
||||
]], null, null, null, 1, gmdate('c'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Reporting\Enums\ReportCategory;
|
||||
use App\Domain\SchoolCore\Reporting\Reports\BaseReportDefinition;
|
||||
|
||||
abstract class BaseIslamicSundaySchoolReport extends BaseReportDefinition
|
||||
{
|
||||
public function category(): ReportCategory { return ReportCategory::EXTENSION; }
|
||||
public function availableForDomainProfile(?string $domainProfile): bool { return $domainProfile === 'islamic_sunday_school'; }
|
||||
public function requiredPermissions(): array { return ['report.view', 'report.islamic.view']; }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Domain\SchoolCore\Reporting\DTO\ReportResultData;
|
||||
|
||||
final class HalaqaAttendanceReport extends BaseIslamicSundaySchoolReport
|
||||
{
|
||||
public function key(): string { return 'islamic.halaqa_attendance'; }
|
||||
public function name(): string { return 'Halaqa Attendance'; }
|
||||
public function columns(): array { return [['key' => 'note', 'label' => 'Note', 'sensitive' => false]]; }
|
||||
public function sensitiveColumns(): array { return ['sensitive_notes']; }
|
||||
public function run(SchoolContext $context, array $filters = []): ReportResultData
|
||||
{
|
||||
return new ReportResultData($this->key(), $this->columns(), [[
|
||||
'school_id' => $context->schoolId,
|
||||
'report_key' => $this->key(),
|
||||
'note' => 'Extension report scaffold. Wire this to Islamic Sunday School read models.',
|
||||
]], null, null, null, 1, gmdate('c'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Domain\SchoolCore\Reporting\DTO\ReportResultData;
|
||||
|
||||
final class IslamicStudiesProgressReport extends BaseIslamicSundaySchoolReport
|
||||
{
|
||||
public function key(): string { return 'islamic.studies_progress'; }
|
||||
public function name(): string { return 'Islamic Studies Progress'; }
|
||||
public function columns(): array { return [['key' => 'note', 'label' => 'Note', 'sensitive' => false]]; }
|
||||
public function sensitiveColumns(): array { return ['sensitive_notes']; }
|
||||
public function run(SchoolContext $context, array $filters = []): ReportResultData
|
||||
{
|
||||
return new ReportResultData($this->key(), $this->columns(), [[
|
||||
'school_id' => $context->schoolId,
|
||||
'report_key' => $this->key(),
|
||||
'note' => 'Extension report scaffold. Wire this to Islamic Sunday School read models.',
|
||||
]], null, null, null, 1, gmdate('c'));
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Domain\SchoolCore\Reporting\DTO\ReportResultData;
|
||||
|
||||
final class IslamicSundaySchoolDashboardReport extends BaseIslamicSundaySchoolReport
|
||||
{
|
||||
public function key(): string { return 'islamic.dashboard'; }
|
||||
public function name(): string { return 'Islamic Sunday School Dashboard'; }
|
||||
public function columns(): array { return [['key' => 'note', 'label' => 'Note', 'sensitive' => false]]; }
|
||||
public function sensitiveColumns(): array { return ['sensitive_notes']; }
|
||||
public function run(SchoolContext $context, array $filters = []): ReportResultData
|
||||
{
|
||||
return new ReportResultData($this->key(), $this->columns(), [[
|
||||
'school_id' => $context->schoolId,
|
||||
'report_key' => $this->key(),
|
||||
'note' => 'Extension report scaffold. Wire this to Islamic Sunday School read models.',
|
||||
]], null, null, null, 1, gmdate('c'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Domain\SchoolCore\Reporting\DTO\ReportResultData;
|
||||
|
||||
final class MasjidFamilySummaryReport extends BaseIslamicSundaySchoolReport
|
||||
{
|
||||
public function key(): string { return 'islamic.masjid_family_summary'; }
|
||||
public function name(): string { return 'Masjid Family Summary'; }
|
||||
public function columns(): array { return [['key' => 'note', 'label' => 'Note', 'sensitive' => false]]; }
|
||||
public function sensitiveColumns(): array { return ['sensitive_notes']; }
|
||||
public function run(SchoolContext $context, array $filters = []): ReportResultData
|
||||
{
|
||||
return new ReportResultData($this->key(), $this->columns(), [[
|
||||
'school_id' => $context->schoolId,
|
||||
'report_key' => $this->key(),
|
||||
'note' => 'Extension report scaffold. Wire this to Islamic Sunday School read models.',
|
||||
]], null, null, null, 1, gmdate('c'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Domain\SchoolCore\Reporting\DTO\ReportResultData;
|
||||
|
||||
final class QuranProgressReport extends BaseIslamicSundaySchoolReport
|
||||
{
|
||||
public function key(): string { return 'islamic.quran_progress'; }
|
||||
public function name(): string { return "Qur'an Progress"; }
|
||||
public function columns(): array { return [['key' => 'note', 'label' => 'Note', 'sensitive' => false]]; }
|
||||
public function sensitiveColumns(): array { return ['sensitive_notes']; }
|
||||
public function run(SchoolContext $context, array $filters = []): ReportResultData
|
||||
{
|
||||
return new ReportResultData($this->key(), $this->columns(), [[
|
||||
'school_id' => $context->schoolId,
|
||||
'report_key' => $this->key(),
|
||||
'note' => 'Extension report scaffold. Wire this to Islamic Sunday School read models.',
|
||||
]], null, null, null, 1, gmdate('c'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Domain\SchoolCore\Reporting\DTO\ReportResultData;
|
||||
|
||||
final class SundayProgramAttendanceReport extends BaseIslamicSundaySchoolReport
|
||||
{
|
||||
public function key(): string { return 'islamic.sunday_program_attendance'; }
|
||||
public function name(): string { return 'Sunday Program Attendance'; }
|
||||
public function columns(): array { return [['key' => 'note', 'label' => 'Note', 'sensitive' => false]]; }
|
||||
public function sensitiveColumns(): array { return ['sensitive_notes']; }
|
||||
public function run(SchoolContext $context, array $filters = []): ReportResultData
|
||||
{
|
||||
return new ReportResultData($this->key(), $this->columns(), [[
|
||||
'school_id' => $context->schoolId,
|
||||
'report_key' => $this->key(),
|
||||
'note' => 'Extension report scaffold. Wire this to Islamic Sunday School read models.',
|
||||
]], null, null, null, 1, gmdate('c'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Domain\IslamicSundaySchool\Reporting\Reports;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Domain\SchoolCore\Reporting\DTO\ReportResultData;
|
||||
|
||||
final class VolunteerTeamReport extends BaseIslamicSundaySchoolReport
|
||||
{
|
||||
public function key(): string { return 'islamic.volunteer_team'; }
|
||||
public function name(): string { return 'Volunteer Team'; }
|
||||
public function columns(): array { return [['key' => 'note', 'label' => 'Note', 'sensitive' => false]]; }
|
||||
public function sensitiveColumns(): array { return ['sensitive_notes']; }
|
||||
public function run(SchoolContext $context, array $filters = []): ReportResultData
|
||||
{
|
||||
return new ReportResultData($this->key(), $this->columns(), [[
|
||||
'school_id' => $context->schoolId,
|
||||
'report_key' => $this->key(),
|
||||
'note' => 'Extension report scaffold. Wire this to Islamic Sunday School read models.',
|
||||
]], null, null, null, 1, gmdate('c'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user