-
+
+
)
}
diff --git a/resources/js/types/academic-term.ts b/resources/js/types/academic-term.ts
new file mode 100644
index 0000000..741115e
--- /dev/null
+++ b/resources/js/types/academic-term.ts
@@ -0,0 +1,22 @@
+export enum Semester {
+ Odd = 'odd',
+ Even = 'even',
+}
+
+export const SemesterLabels: Record
= {
+ [Semester.Odd]: 'Ganjil',
+ [Semester.Even]: 'Genap',
+};
+
+export type AcademicTerm = {
+ id: number;
+ name: string;
+ semester: Semester;
+ start_date: string;
+ formatted_start_date: string;
+ end_date: string;
+ formatted_end_date: string;
+ is_active: boolean;
+ created_at: string;
+ updated_at: string;
+};
diff --git a/resources/js/types/index.ts b/resources/js/types/index.ts
index b1f0ee6..dbb91da 100644
--- a/resources/js/types/index.ts
+++ b/resources/js/types/index.ts
@@ -1,3 +1,4 @@
+export type * from './academic-term';
export type * from './auth';
export type * from './navigation';
export type * from './ui';
diff --git a/routes/admin.php b/routes/admin.php
new file mode 100644
index 0000000..64d6406
--- /dev/null
+++ b/routes/admin.php
@@ -0,0 +1,8 @@
+prefix('admin/master')->name('admin.master.')->group(function () {
+ Route::resource('academic-terms', AcademicTermController::class)->except(['create', 'edit', 'show']);
+});
diff --git a/routes/web.php b/routes/web.php
index 2085b21..04a46f3 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -9,3 +9,4 @@
});
require __DIR__.'/settings.php';
+require __DIR__.'/admin.php';