add reseller

This commit is contained in:
karimaldeen 2024-09-10 12:29:57 +03:00
parent 398d1e8f07
commit 9509943a60
20 changed files with 218 additions and 766 deletions

View File

@ -0,0 +1,28 @@
import { useTranslation } from "react-i18next";
import useSetPageTitle from "../../../../Hooks/useSetPageTitle";
import PageHeader from "../../../../Layout/Dashboard/PageHeader";
import { Suspense } from "react";
import { Spin } from "antd";
import { ModalEnum } from "../../../../enums/Model";
import { canAddReSeller } from "../../../../utils/hasAbilityFn";
const TableHeader = () => {
const [t] = useTranslation();
useSetPageTitle(t(`page_header.reseller`));
return (
<div className="TableWithHeader">
<Suspense fallback={<Spin />}>
<PageHeader
pageTitle="reseller"
ModelAbility={ModalEnum?.RE_SELLER_ADD}
canAdd={false}
/>
</Suspense>
</div>
);
};
export default TableHeader;

View File

@ -0,0 +1,9 @@
import React from 'react'
const Page = () => {
return (
<div>Page</div>
)
}
export default Page

View File

@ -1,33 +0,0 @@
import React from "react";
import { getInitialValues, getValidationSchema } from "./formUtil";
import { ModalEnum } from "../../../../enums/Model";
import LayoutModel from "../../../../Layout/Dashboard/LayoutModel";
import { QueryStatusEnum } from "../../../../enums/QueryStatus";
import ModelForm from "./ModelForm";
import { useAddReseller } from "../../../../api/reseller";
const AddModel: React.FC = () => {
const { mutate, status } = useAddReseller();
const handleSubmit = (values: any) => {
mutate({
...values,
});
};
return (
<>
<LayoutModel
status={status as QueryStatusEnum}
ModelEnum={ModalEnum.RESELLER_ADD}
modelTitle="reseller"
handleSubmit={handleSubmit}
getInitialValues={getInitialValues({})}
getValidationSchema={getValidationSchema}
>
<ModelForm />
</LayoutModel>
</>
);
};
export default AddModel;

View File

@ -1,37 +0,0 @@
import React from "react";
import { getInitialValues, getValidationSchema } from "./formUtil";
import { ModalEnum } from "../../../../enums/Model";
import LayoutModel from "../../../../Layout/Dashboard/LayoutModel";
import ModelForm from "./ModelForm";
import { QueryStatusEnum } from "../../../../enums/QueryStatus";
import { useObjectToEdit } from "../../../../zustand/ObjectToEditState";
import { useUpdateUser } from "../../../../api/user";
import { useUpdateReseller } from "../../../../api/reseller";
const EditModel: React.FC = () => {
const { mutate, status } = useUpdateReseller();
const { objectToEdit } = useObjectToEdit((state) => state);
const handleSubmit = (values: any) => {
mutate({
...values,
});
};
return (
<>
<LayoutModel
status={status as QueryStatusEnum}
ModelEnum={ModalEnum.RESELLER_EDIT}
modelTitle="reseller_details"
handleSubmit={handleSubmit}
getInitialValues={getInitialValues(objectToEdit)}
getValidationSchema={getValidationSchema}
isAddModal={false}
>
<ModelForm />
</LayoutModel>
</>
);
};
export default EditModel;

View File

@ -6,17 +6,15 @@ import { lazy, Suspense } from "react";
import { Spin } from "antd";
import {
canAddReport,
canAddReseller,
canAddReSeller,
canAddTags,
} from "../../../utils/hasAbilityFn";
import useSetPageTitle from "../../../Hooks/useSetPageTitle";
import { useDeleteTag } from "../../../api/tags";
import PageHeader from "../../../Layout/Dashboard/PageHeader";
import FilterLayout from "../../../Layout/Dashboard/FilterLayout";
import FilterForm from "./Model/FilterForm";
import FilterForm from "./Form/FilterForm";
const Table = lazy(() => import("./Table"));
const AddModalForm = lazy(() => import("./Model/AddModel"));
const EditModalForm = lazy(() => import("./Model/EditModel"));
const DeleteModalForm = lazy(
() => import("../../../Layout/Dashboard/DeleteModels"),
);
@ -34,20 +32,21 @@ const TableHeader = () => {
<Suspense fallback={<Spin />}>
<PageHeader
pageTitle="reseller"
ModelAbility={ModalEnum?.RESELLER_ADD}
canAdd={canAddReseller}
ModelAbility={ModalEnum?.RE_SELLER_ADD}
canAdd={canAddReSeller}
openModel={false}
locationToNavigate={"add"}
/>
<FilterLayout
sub_children={<FilterForm />}
filterTitle="sidebar.reseller"
filterTitle="table.reseller"
/>
<Table />
<DeleteModalForm
deleteMutation={deleteMutation}
ModelEnum={ModalEnum?.RESELLER_DELETE}
ModelEnum={ModalEnum?.RE_SELLER_DELETE}
/>
<AddModalForm />
<EditModalForm />
</Suspense>
</div>
);

View File

@ -2,16 +2,11 @@ import { useColumns } from "./useTableColumns";
import Table from "./Table";
import { FaPlus } from "react-icons/fa";
import AddModalForm from "./Model/AddModel";
import EditModalForm from "./Model/EditModel";
// import DeleteModalForm from "../../";
export {
Table,
useColumns,
AddModalForm,
EditModalForm,
// DeleteModalForm,
FaPlus,
};

View File

@ -1,59 +1,82 @@
import { TableColumnsType } from "antd";
import { reseller } from "../../../types/Item";
import { ReSeller } from "../../../types/ReSeller";
import { FaPlus } from "react-icons/fa";
import useModalHandler from "../../../utils/useModalHandler";
import { ModalEnum } from "../../../enums/Model";
import { useObjectToEdit } from "../../../zustand/ObjectToEditState";
import { useModalState } from "../../../zustand/Modal";
import { useTranslation } from "react-i18next";
import { ABILITIES_ENUM } from "../../../enums/abilities";
import { useNavigate } from "react-router-dom";
import {
canDeleteReseller,
canDeleteUser,
canEditReseller,
canEditUser,
canAddReSeller,
canDeleteReSeller,
canEditReSeller,
} from "../../../utils/hasAbilityFn";
import ActionButtons from "../../../Components/Table/ActionButtons";
import ColumnsImage from "../../../Components/Columns/ColumnsImage";
export const useColumns = () => {
const [t] = useTranslation();
const { setIsOpen } = useModalState((state) => state);
const { handel_open_model } = useModalHandler();
const { setObjectToEdit } = useObjectToEdit((state) => state);
const handelDelete = (record: any) => {
setObjectToEdit(record);
setIsOpen(ModalEnum?.RESELLER_DELETE);
};
const handleEdit = (record: any) => {
setObjectToEdit(record);
setIsOpen(ModalEnum?.RESELLER_EDIT);
const navigate = useNavigate();
const handelDelete = (data: ReSeller) => {
setObjectToEdit(data);
handel_open_model(ModalEnum?.RE_SELLER_DELETE);
};
const columns: TableColumnsType<reseller> = [
const handleEdit = (record: ReSeller) => {
setObjectToEdit(record);
handel_open_model(ModalEnum?.RE_SELLER_EDIT);
};
const [t] = useTranslation();
const columns: TableColumnsType<ReSeller> = [
{
title: t("columns.id"),
dataIndex: "id",
key: "id",
align: "center",
render: (_text, record) => record?.id,
},
{
title: t("columns.name"),
dataIndex: "name",
key: "name",
title: `${t("columns.first_name")}`,
dataIndex: "first_name",
key: "first_name",
align: "center",
render: (_text, record) => record?.first_name,
},
{
title: t("columns.procedure"),
title: `${t("columns.last_name")}`,
dataIndex: "last_name",
key: "last_name",
align: "center",
render: (_text, record) => record?.last_name,
},
{
title: `${t("columns.username")}`,
dataIndex: "username",
key: "username",
align: "center",
render: (_text, record) => record?.user?.username,
},
{
title:"",
key: "actions",
align: "center",
width: "25vw",
render: (_text, record, index) => {
return (
<ActionButtons
canDelete={canEditReseller}
canEdit={canDeleteReseller}
canDelete={canDeleteReSeller}
canEdit={canEditReSeller}
index={index}
onDelete={() => handelDelete(record)}
onEdit={() => handleEdit(record)}
/>
);
},

View File

@ -1,5 +1,5 @@
import { TCrudRoute, TMenuItem } from "./types/App";
import { FaHome, FaMoneyBill } from "react-icons/fa";
import { FaHome, FaMoneyBill, FaSellcast } from "react-icons/fa";
import React from "react";
const Dummy = React.lazy(() => import("./Pages/Home/Dummy"));
@ -21,6 +21,9 @@ const EditQuestionPage = React.lazy(
const Report = React.lazy(() => import("./Pages/Admin/Report/Page"));
const Student = React.lazy(() => import("./Pages/Admin/Student/Page"));
const ReSeller = React.lazy(() => import("./Pages/Admin/Reseller/Page"));
const AddReSeller = React.lazy(() => import("./Pages/Admin/Reseller/Add/Page"));
const EditReSeller = React.lazy(() => import("./Pages/Admin/Reseller/Edit/Page"));
import { hasAbility } from "./utils/hasAbility";
import { ABILITIES_ENUM, ABILITIES_VALUES_ENUM } from "./enums/abilities";
@ -78,6 +81,16 @@ export const menuItems: TMenuItem[] = [
abilities_value: ABILITIES_VALUES_ENUM.INDEX,
prevPath: 0,
},
{
header: "page_header.reSeller",
element: <ReSeller />,
icon: <FaSellcast />,
text: "sidebar.reseller",
path: `/${ABILITIES_ENUM?.RE_SELLER}`,
abilities: ABILITIES_ENUM?.RE_SELLER,
abilities_value: ABILITIES_VALUES_ENUM.INDEX,
prevPath: 0,
},
// {
// header: "page_header.tags",
// element: <Tags />,
@ -183,22 +196,22 @@ export const CrudRoute: TCrudRoute[] = [
prevPath: 2,
},
// {
// header: "page_header.add_package",
// element: <AddPackagePage />,
// path: `/${ABILITIES_ENUM?.Package}/add`,
// abilities: ABILITIES_ENUM?.Package,
// abilities_value: ABILITIES_VALUES_ENUM.INDEX,
// prevPath: 0,
// },
// {
// header: "page_header.edit_package",
// element: <EditPackagePage />,
// path: `/${ABILITIES_ENUM?.Package}/add`,
// abilities: ABILITIES_ENUM?.Package,
// abilities_value: ABILITIES_VALUES_ENUM.INDEX,
// prevPath: 0,
// },
{
header: "page_header.add_reseller",
element: <AddReSeller />,
path: `/${ABILITIES_ENUM?.RE_SELLER}/add`,
abilities: ABILITIES_ENUM?.RE_SELLER,
abilities_value: ABILITIES_VALUES_ENUM.INDEX,
prevPath: 0,
},
{
header: "page_header.edit_reseller",
element: <EditReSeller />,
path: `/${ABILITIES_ENUM?.RE_SELLER}/:id`,
abilities: ABILITIES_ENUM?.RE_SELLER,
abilities_value: ABILITIES_VALUES_ENUM.INDEX,
prevPath: 0,
},
];
export const AppRoutes: Record<string, string> = Object.fromEntries(

View File

@ -47,9 +47,9 @@
.add_button {
outline: none;
border: none;
width: 10vw;
min-width: 120px;
border-radius: 10px;
padding: 0.7vw;
padding: 10px;
font-weight: bold;
background: var(--primary);
color: var(--white);

View File

@ -32,8 +32,8 @@
align-items: flex-end;
}
img {
width: 3vw;
height: 3vw;
width: 40px;
height: 40px;
}
h6 {
font-size: 0.8vw;
@ -57,8 +57,8 @@
color: #fff;
}
@include Flex;
width: 3vw;
height: 3vw;
width: 40px;
height: 40px;
border: 2px solid var(--borderColor);
border-radius: 10px;
cursor: pointer;

View File

@ -193,11 +193,15 @@
width: 100%;
}
.row > * {
padding-right: 0 !important;
padding-left: 0 !important;
}
.SelectTag {
padding-inline: 20px;
}
.exercise_add{
.add_new_button{
padding-inline: 20px !important;
}
}

View File

@ -171,9 +171,10 @@ export enum ModalEnum {
USER_ADD = "USER.add",
USER_DELETE = "USER.delete",
///reseller
/// ReSeller
RE_SELLER_EDIT = "ReSeller.edit",
RE_SELLER_ADD = "ReSeller.add",
RE_SELLER_DELETE = "ReSeller.delete",
RESELLER_EDIT = "RESELLER.edit",
RESELLER_ADD = "RESELLER.add",
RESELLER_DELETE = "RESELLER.delete",
}

View File

@ -45,7 +45,7 @@ export enum ABILITIES_ENUM {
CURRICULUM = "curriculum",
Report = "report",
User = "user",
Reseller = "reseller",
RE_SELLER = "reseller",
////
}

View File

@ -159,7 +159,8 @@
"question_options_count": "عدد الخيارات",
"procedure": "اجراء",
"icon": "الايقونة",
"canAnswersBeShuffled": "يمكن خلط الإجابات"
"canAnswersBeShuffled": "يمكن خلط الإجابات",
"first_name":"الاسم الأول"
},
"practical": {
"to_confirm_deletion_please_re_enter": "لتأكيد الحذف، يرجى إعادة الإدخال",
@ -274,7 +275,8 @@
"report": "تقرير",
"user": "مستخدم",
"user_details": "تفاصيل المستخدم",
"reseller_details": "تفاصيل اعادة البيع"
"reseller_details": "تفاصيل اعادة البيع",
"reseller":"البائعين"
},
"education_class_actions": {
"Student_Records": "سجلات الطلاب",
@ -692,7 +694,8 @@
"question": "السؤال",
"report": "تقرير",
"user": "مستخدم",
"student": "الطلاب"
"student": "الطلاب",
"reseller":"البائعين"
},
"message": {
"some_thing_went_wrong": "حدث خطأ ما",
@ -750,10 +753,12 @@
"edit_Question": "لوحة القيادة /تعديل اسئلة ",
"grade": "الدرجات",
"report": "تقرير",
"user": "مستخدم"
"user": "مستخدم",
"reseller":" لوحة القيادة / البائعين"
},
"table": {
"student": "قائمة الطلاب"
"student": "قائمة الطلاب",
"reseller":"البائعين"
},
"alphabet": {
"A": "أ",

View File

@ -1,613 +1,3 @@
{
"main_page": "Main Page",
"dashboard": "dashboard",
"validation": {
"required": "required",
"value_must_be_less_than_900000": "value_must_be_less_than_900000",
"type_required": "type_required",
"pleas_fill_all_label": "pleas Fill All Label",
"please_select_students": "please_select_students",
"please_fill_in_all_the_fields": "please_fill_in_all_the_fields",
"Invalid_email": "Invalid_email",
"Email_is_required": "Email_is_required",
"Password_is_required": "Password_is_required",
"Password_must_be_at_least_8_characters_long": "Password_must_be_at_least_8_characters_long",
"Nationality_is_required": "Nationality_is_required",
"Address_is_required": "Address_is_required",
"Place_of_birth_is_required": "Place_of_birth_is_required",
"Date_of_birth_is_required": "Date_of_birth_is_required",
"Mother's_name_is_required": "Mother's_name_is_required",
"Father's_name_is_required": "Father's_name_is_required",
"Last_name_is_required": "Last_name_is_required",
"First_name_is_required": "First_name_is_required",
"Religion_is_required": "Religion_is_required",
"Gender_is_required": "Gender_is_required",
"Attachment1_is_required": "Attachment1_is_required",
"Father's_job_is_required": "Father's_job_is_required",
"Mother's_phone_number_is_required": "Mother's_phone_number_is_required",
"Father's_phone_number_is_required": "Father's_phone_number_is_required",
"Mother's_job_is_required": "Mother's_job_is_required",
"justification_is_required": "justification_is_required",
"duration_is_required": "duration_is_required",
"pleas_do_any_changes": "pleas_do_any_changes",
"edit_session_content": "edit_session_content",
"Title_is_required": "Title_is_required",
"Exam_type_is_required": "Exam_type_is_required",
"Subject_is_required": "Subject_is_required",
"Maximum_grade_is_required": "Maximum_grade_is_required",
"Must_be_a_number": "Must_be_a_number",
"Value_must_not_exceed_10000": "Value_must_not_exceed_10000",
"Passing_grade_is_required": "Passing_grade_is_required",
"Date_is_required": "Date_is_required",
"Duration_is_required": "Duration_is_required",
"the_possess_done_successful": "the_possess_done_successful",
"some_thing_went_wrong": "some_thing_went_wrong",
"Due_date_must_be_before_assigning_date": "Due date must be before assigning date"
},
"header": {
"register_students": "register_students",
"import_students": "import_students",
"move_student": "move_student",
"Student_added_successfully": "Student_added_successfully",
"the_student_has_been_added_Do_you_want_to_add_another_student": "the_student_has_been_added_Do_you_want_to_add_another_student",
"Add_a_new_student": "Add_a_new_student",
"Please enter all required data": "Please enter all required data",
"Back to Previous Step": "Back to Previous Step",
"Adding...": "Adding...",
"Next Step": "Next Step",
"Add Student": "Add Student",
"Attendance and absence of students": "Attendance and absence of students",
"see_more_details": "see_more_details",
"earlyDepartures": "earlyDepartures",
"Follow_the_curriculum": "Follow_the_curriculum",
"add_session_content": "add_session_content",
"add_session": "add_session",
"edit_session": "edit_session",
"classroom_behavior_of_students": "classroom_behavior_of_students",
"note_details": "note_details",
"student_homework": "student_homework",
"home_work_title": "home_work_title",
"subject": "subject",
"max_grade": "max_grade",
"student_count": "student_count",
"student_exam": "student_exam",
"student_name": "student_name",
"student_card": "student_card",
"Student_classroom_behavior": "Student_classroom_behavior",
"The_student_financial_situation": "The_student_financial_situation",
"Modify_student_information": "Modify_student_information",
"student_details": "student_details",
"student_status": "student_status",
"parent_details": "parent_details",
"contact_details": "contact_details",
"additional_details": "additional_details",
"note_type": "note_type",
"student_payment": "student_payment",
"add_new_unit": "add_new_unit",
"add_new_lessons": "add_new_lessons",
"Student_Information": "Student_Information",
"Parent_Information": "Parent_Information",
"Contact_Information": "Contact_Information",
"Attachment_Images": "Attachment_Images",
"Weekly_Class_Schedule": "Weekly_Class_Schedule",
"Print_Schedule": "Print_Schedule",
"Welcome": "Welcome",
"Enter your email and password to log in": "Enter your email and password to log in",
"change_your_current_password": "change your current password",
"view_cycle_for_this_branch": "view cycle for this branch",
"view_term_for_this_cycle": "view term for this branch"
},
"columns": {
"id": "id",
"name": "name",
"address": "address",
"contact_information": "contact_information",
"data": "data",
"details": "details",
"receipt_number": "receipt_number",
"payment_type": "payment_type",
"value": "value",
"subject_name": "subject_name",
"image": "image",
"card": "card",
"birthday": "birthday",
"last_name": "last_name",
"father_name": "father_name",
"sex": "sex",
"presence": "presence",
"teacher_name": "teacher_name",
"lesson_name": "lesson_name",
"session_start": "session_start",
"type": "type",
"title": "title",
"content": "content",
"assigning_date": "assigning_date",
"due_date": "due_date",
"mark": "mark",
"student_name": "student_name",
"absence": "absence",
"earlyDeparture": "earlyDeparture",
"lateArrival": "lateArrival",
"date": "date",
"starting_date": "starting_date",
"ending_date": "ending_date",
"term_type": "term_type",
"status": "status"
},
"practical": {
"to_confirm_deletion_please_re_enter": "To confirm deletion, please re-enter",
"back": "back",
"add": "add",
"edit": "edit",
"move": "move",
"skip": "skip",
"show": "show",
"save": "save",
"enter": "enter",
"delete": "delete",
"cancel": "cancel",
"search_here": "search_here",
"details": "details",
"export_students": "export_students",
"send_notification_to_course": "send_notification_to_course",
"Send_Direct_Notification": "Send_Direct_Notification",
"cancel_registration": "cancel_registration",
"send_notification_to_education_class": "send_notification_to_education_class",
"send_notification_to_student": "send_notification_to_student",
"status": "status",
"Step": "Step",
"login": "login",
"submite": "submite",
"index": "index",
"store": "store",
"update": "update",
"me": "me",
"importStudentData": "importStudentData",
"moveStudents": "moveStudents",
"importStudents": "importStudents",
"overview": "overview",
"presence": "presence"
},
"Table": {
"header": "",
"info": ""
},
"models": {
"teacher": "teacher",
"student": "student",
"students": "students",
"subject": "subject",
"education_class": "education_class",
"eduClass": "education_class",
"session_content": "session_content",
"course": "course",
"payment": "payment",
"note": "note",
"homework": "homework",
"mark": "mark",
"exam": "exam",
"absence": "absence",
"late_arrival": "late_arrival",
"presence": "presence",
"earlyDeparture": "earlyDeparture",
"branch": "branch",
"cycle": "cycle",
"term": "term",
"role": "role",
"Pass": "Pass",
"user": "User",
"branchAdmin": "Branch Admin",
"grade": "Grade",
"homeworkAttachment": "Homework Attachment",
"lateArrival": "Late Arrival",
"noteAttachment": "Note Attachment",
"session": "Session",
"sessionContent": "Session Content",
"subjectAttachment": "Subject Attachment",
"unit": "Unit",
"lesson": "Lesson",
"exercise": "Exercise",
"exerciseAnswer": "Exercise Answer",
"tag": "Tag",
"Exam": "Exam",
"ExamType": "Exam Type",
"studentParent": "Student Parent",
"registrationRecord": "Registration Record",
"paymentOverview": "Payment Overview",
"subjectAttachmentType": "Subject Attachment Type",
"param": "Param",
"subjectProgress": "Subject Progress",
"main_page": "Main Page",
"tags_details": "tags details"
},
"education_class_actions": {
"Student_Records": "Student_Records",
"Attendance": "Attendance",
"Permissions": "Permissions",
"Grades": "Grades",
"Notes": "Notes",
"Financial_Status": "Financial_Status",
"Assignments": "Assignments",
"Class_Schedule": "Class_Schedule",
"Curriculum_Follow_up": "Curriculum_Follow_up"
},
"input": {
"name": "name",
"address": "address",
"number": "number",
"price": "price",
"drag_and_drop_or_click_here_to_select_the_file": "Drag and drop or click here to select the file",
"Click_to_upload_the_image": "Click to upload the image",
"payment_type": "payment_type",
"details": "details",
"student_name": "student_name",
"receipt_number": "receipt_number",
"date": "date",
"value": "value",
"teacher_name": "teacher_name",
"sex": "sex",
"content": "content",
"type": "type",
"attachments": "attachments",
"send_notification_to_course": "send_notification_to_course",
"export_students": "export_students",
"password": "password",
"nationality": "nationality",
"religion": "religion",
"birthday": "birthday",
"birth_place": "birth_place",
"father_name": "father_name",
"father_job": "father_job",
"mother_name": "mother_name",
"mother_phone_number": "mother_phone_number",
"father_phone_number": "father_phone_number",
"mother_job": "mother_job",
"phone_number": "phone_number",
"additional_phone_number": "additional_phone_number",
"note": "note",
"school_document": "school_document",
"first_name": "first_name",
"last_name": "last_name",
"email": "email",
"student_status": "student_status",
"duration": "duration",
"justification": "justification",
"attachment": "attachment",
"session_name": "session_name",
"lesson_name": "lesson_name",
"title": "title",
"due_date": "due_date",
"assigning_date": "assigning_date",
"subject_name": "subject_name",
"exam_type": "exam_type",
"grade_to_pass": "grade_to_pass",
"max_grade": "max_grade",
"status": "status",
"departure_time": "departure_time",
"mark": "mark",
"image": "image",
"term": "term",
"session_start": "session_start",
"session_end": "session_end",
"academic_year": "academic_year",
"select_date": "select_date",
"School_Year": "School Year",
"Enter_branch_first": "Enter branch first",
"School_Term": "School Term",
"Enter_school_year_first": "Enter school year first",
"Username": "Username",
"Password": "Password",
"new_password": "new_password",
"old_password": "old_password",
"username": "username",
"starting_date": "starting_date",
"ending_date": "ending_date",
"term_type": "term_type",
"description": "description",
"abilities": "abilities"
},
"select": {
"Payments": {
"paid": "paid",
"to_be_paid": "to_be_paid",
"all_payment": "all_payment",
"dues": "dues"
},
"Marks": {
"Not_Taken": "Not_Taken",
"Taken": "Taken"
},
"Sex": {
"male": "male",
"female": "female",
"bi": "mix"
},
"Religion": {
"muslim": "muslim",
"christianity": "christianity",
"other": "other"
},
"nationalities": {
"Afghan": "Afghan",
"Albanian": "Albanian",
"Algerian": "Algerian",
"American": "American",
"Andorran": "Andorran",
"Angolan": "Angolan",
"Antiguans": "Antiguans",
"Argentinean": "Argentinean",
"Armenian": "Armenian",
"Australian": "Australian",
"Austrian": "Austrian",
"Azerbaijani": "Azerbaijani",
"Bahamian": "Bahamian",
"Bahraini": "Bahraini",
"Bangladeshi": "Bangladeshi",
"Barbadian": "Barbadian",
"Barbudans": "Barbudans",
"Batswana": "Batswana",
"Belarusian": "Belarusian",
"Belgian": "Belgian",
"Belizean": "Belizean",
"Beninese": "Beninese",
"Bhutanese": "Bhutanese",
"Bolivian": "Bolivian",
"Bosnian": "Bosnian",
"Brazilian": "Brazilian",
"British": "British",
"Bruneian": "Bruneian",
"Bulgarian": "Bulgarian",
"Burkinabe": "Burkinabe",
"Burmese": "Burmese",
"Burundian": "Burundian",
"Cambodian": "Cambodian",
"Cameroonian": "Cameroonian",
"Canadian": "Canadian",
"Cape Verdean": "Cape Verdean",
"Central African": "Central African",
"Chadian": "Chadian",
"Chilean": "Chilean",
"Chinese": "Chinese",
"Colombian": "Colombian",
"Comoran": "Comoran",
"Congolese": "Congolese",
"Costa Rican": "Costa Rican",
"Croatian": "Croatian",
"Cuban": "Cuban",
"Cypriot": "Cypriot",
"Czech": "Czech",
"Danish": "Danish",
"Djibouti": "Djibouti",
"Dominican": "Dominican",
"Dutch": "Dutch",
"East Timorese": "East Timorese",
"Ecuadorean": "Ecuadorean",
"Egyptian": "Egyptian",
"Emirian": "Emirian",
"Equatorial Guinean": "Equatorial Guinean",
"Eritrean": "Eritrean",
"Estonian": "Estonian",
"Ethiopian": "Ethiopian",
"Fijian": "Fijian",
"Filipino": "Filipino",
"Finnish": "Finnish",
"French": "French",
"Gabonese": "Gabonese",
"Gambian": "Gambian",
"Georgian": "Georgian",
"German": "German",
"Ghanaian": "Ghanaian",
"Greek": "Greek",
"Grenadian": "Grenadian",
"Guatemalan": "Guatemalan",
"Guinea-Bissauan": "Guinea-Bissauan",
"Guinean": "Guinean",
"Guyanese": "Guyanese",
"Haitian": "Haitian",
"Herzegovinian": "Herzegovinian",
"Honduran": "Honduran",
"Hungarian": "Hungarian",
"I-Kiribati": "I-Kiribati",
"Icelander": "Icelander",
"Indian": "Indian",
"Indonesian": "Indonesian",
"Iranian": "Iranian",
"Iraqi": "Iraqi",
"Irish": "Irish",
"palestine": "palestine",
"Italian": "Italian",
"Ivorian": "Ivorian",
"Jamaican": "Jamaican",
"Japanese": "Japanese",
"Jordanian": "Jordanian",
"Kazakhstani": "Kazakhstani",
"Kenyan": "Kenyan",
"Kittian and Nevisian": "Kittian and Nevisian",
"Kuwaiti": "Kuwaiti",
"Kyrgyz": "Kyrgyz",
"Laotian": "Laotian",
"Latvian": "Latvian",
"Lebanese": "Lebanese",
"Liberian": "Liberian",
"Libyan": "Libyan",
"Liechtensteiner": "Liechtensteiner",
"Lithuanian": "Lithuanian",
"Luxembourger": "Luxembourger",
"Macedonian": "Macedonian",
"Malagasy": "Malagasy",
"Malawian": "Malawian",
"Malaysian": "Malaysian",
"Maldivan": "Maldivan",
"Malian": "Malian",
"Maltese": "Maltese",
"Marshallese": "Marshallese",
"Mauritanian": "Mauritanian",
"Mauritian": "Mauritian",
"Mexican": "Mexican",
"Micronesian": "Micronesian",
"Moldovan": "Moldovan",
"Monacan": "Monacan",
"Mongolian": "Mongolian",
"Moroccan": "Moroccan",
"Mosotho": "Mosotho",
"Motswana": "Motswana",
"Mozambican": "Mozambican",
"Namibian": "Namibian",
"Nauruan": "Nauruan",
"Nepali": "Nepali",
"New Zealander": "New Zealander",
"Nicaraguan": "Nicaraguan",
"Nigerian": "Nigerian",
"Nigerien": "Nigerien",
"North Korean": "North Korean",
"Northern Irish": "Northern Irish",
"Norwegian": "Norwegian",
"Omani": "Omani",
"Pakistani": "Pakistani",
"Palauan": "Palauan",
"Panamanian": "Panamanian",
"Papua New Guinean": "Papua New Guinean",
"Paraguayan": "Paraguayan",
"Peruvian": "Peruvian",
"Polish": "Polish",
"Portuguese": "Portuguese",
"Qatari": "Qatari",
"Romanian": "Romanian",
"Russian": "Russian",
"Rwandan": "Rwandan",
"Saint Lucian": "Saint Lucian",
"Salvadoran": "Salvadoran",
"Samoan": "Samoan",
"San Marinese": "San Marinese",
"Sao Tomean": "Sao Tomean",
"Saudi": "Saudi",
"Scottish": "Scottish",
"Senegalese": "Senegalese",
"Serbian": "Serbian",
"Seychellois": "Seychellois",
"Sierra Leonean": "Sierra Leonean",
"Singaporean": "Singaporean",
"Slovakian": "Slovakian",
"Slovenian": "Slovenian",
"Solomon Islander": "Solomon Islander",
"Somali": "Somali",
"South African": "South African",
"South Korean": "South Korean",
"Spanish": "Spanish",
"Sri Lankan": "Sri Lankan",
"Sudanese": "Sudanese",
"Surinamer": "Surinamer",
"Swazi": "Swazi",
"Swedish": "Swedish",
"Swiss": "Swiss",
"Syrian": "Syrian",
"Taiwanese": "Taiwanese",
"Tajik": "Tajik",
"Tanzanian": "Tanzanian",
"Thai": "Thai",
"Togolese": "Togolese",
"Tongan": "Tongan",
"Trinidadian/Tobagonian": "Trinidadian/Tobagonian",
"Tunisian": "Tunisian",
"Turkish": "Turkish",
"Tuvaluan": "Tuvaluan",
"Ugandan": "Ugandan",
"Ukrainian": "Ukrainian",
"Uruguayan": "Uruguayan",
"Uzbekistani": "Uzbekistani",
"Venezuelan": "Venezuelan",
"Vietnamese": "Vietnamese",
"Welsh": "Welsh",
"Yemenite": "Yemenite",
"Zambian": "Zambian",
"Zimbabwean": "Zimbabwean"
},
"Student_Type": {
"all_students": "all_students",
"absence": "absence",
"late_arrival": "late_arrival",
"presence": "presence",
"justified": "justified",
"not_justified": "not_justified",
"earlyDeparture": "earlyDeparture"
},
"Note": {
"normal_note": "normal_note",
"alert_note": "alert_note",
"financial_note": "financial_note",
"positive_note": "positive_note",
"warning_note": "warning_note",
"academic_note": "academic_note",
"studying_note": "studying_note",
"organization_note": "organization_note",
"all_note": "all_note"
},
"Exam": {
"Taken": "Taken",
"Not_Taken": "Not_Taken",
"all_student": "all_student"
},
"Term_type": {
"first": "first",
"second": "second"
}
},
"array": {
"Period": {
"Today": "Today",
"First": "First",
"Second": "Second",
"Third": "Third",
"Fourth": "Fourth",
"Fifth": "Fifth",
"Sixth": "Sixth",
"Seventh": "Seventh"
},
"Days": {
"Sunday": "Sunday",
"Monday": "Monday",
"Tuesday": "Tuesday",
"Wednesday": "Wednesday",
"Thursday": "Thursday",
"Friday": "Friday",
"Saturday": "Saturday"
},
"UserInfo": {
"course": "course",
"education_class": "education_class",
"nationality": "nationality",
"birthday": "birthday",
"warning": "warning",
"appreciation": "appreciation",
"alert": "alert"
}
},
"sidebar": {
"dashboard": "dashboard",
"course": "course",
"teacher": "teacher",
"payment": "payment",
"student_details": "student_details",
"create_student": "create_student",
"course_details": "course_details",
"education_class_details": "education_class_details",
"subject_details": "subject_details",
"logout": "logout",
"branch": "branch",
"role": "role"
},
"message": {
"some_thing_went_wrong": "some_thing_went_wrong",
"the_possess_done_successful": "the_possess_done_successful"
}
}
}

50
src/types/ReSeller.ts Normal file
View File

@ -0,0 +1,50 @@
import { Nullable } from "./App";
// Define the Teacher interface
interface ReSellerUser {
id: number;
username: string;
phone_number: string | null;
type: 'reseller' | 'other'; // Specify other types if needed
}
interface ReSellerLocation {
lat: string;
lng: string;
}
interface ContactInfo {
contact_number1: string;
contact_number2: string;
card_number: string | null;
}
export interface ReSeller {
id: number;
user: ReSellerUser;
first_name: string;
last_name: string;
location: ReSellerLocation;
contact_info: ContactInfo;
contact_number1 : string | number
contact_number2 : string | number
}
export interface InitialValues {
id: number;
user: ReSellerUser;
first_name: string;
last_name: string;
location: ReSellerLocation;
lat: string | Number;
lng: string | Number;
contact_info: ContactInfo;
contact_number1 : string | number
contact_number2 : string | number
username : string
}
export type ReSellerInitialValues = Partial<Nullable<InitialValues>>;

View File

@ -620,18 +620,23 @@ export const canDeleteUser = hasAbility(
ABILITIES_VALUES_ENUM.DELETE,
);
/// Reseller
export const canAddReseller = hasAbility(
ABILITIES_ENUM.Reseller,
/// ReSeller
export const canAddReSeller = hasAbility(
ABILITIES_ENUM.RE_SELLER,
ABILITIES_VALUES_ENUM.STORE,
);
export const canEditReseller = hasAbility(
ABILITIES_ENUM.Reseller,
export const canEditReSeller = hasAbility(
ABILITIES_ENUM.RE_SELLER,
ABILITIES_VALUES_ENUM.UPDATE,
);
export const canDeleteReseller = hasAbility(
ABILITIES_ENUM.Reseller,
export const canDeleteReSeller = hasAbility(
ABILITIES_ENUM.RE_SELLER,
ABILITIES_VALUES_ENUM.DELETE,
);
export const canShowReSeller = hasAbility(
ABILITIES_ENUM.RE_SELLER,
ABILITIES_VALUES_ENUM.SHOW,
);