import { DataStructure } from "@/src/components/base/DataStructure";
import { eventId, userId } from "../database";
import { EventSchema } from "./event";
import { UserSchema } from "./user";

export interface TrainingHour {
    id: number;
    event_id: number;
    user_id: number;
    hours: number;
    approved_by: number;
    status: number;
}

export const TrainingHourSchema: DataStructure[] = [
    {
        fieldId: "id",
        type: "number",
        displayName: "Training Hours",
        hideFromCRUD: true
    },
    {
        fieldId: "event_id",
        type: "reference",
        referenceId: eventId,
        referenceStructure: EventSchema,
        referenceAlias: "event",
        referenceParentAlias: "training_hours",
        referenceDisplay:"event_name",
        displayName: "Event",
        required: true
    },
    {
        fieldId: "user_id",
        type: "reference",
        referenceId: userId,
        referenceStructure: UserSchema,
        referenceAlias: "user",
        referenceParentAlias: "training_hours",
        referenceDisplay: "name",
        displayName: "User",
        required: true
    },
    {
        fieldId: "hours",
        type: "number",
        displayName: "Hours",
        required: true
    },
    {
        fieldId: "approved_by",
        type: "reference",
        referenceId: userId,
        referenceStructure: UserSchema,
        referenceAlias: "approver",
        referenceParentAlias: "training_hours",
        referenceDisplay: "name",
        displayName: "Approved By",
        required: true
    }, 
    {
        fieldId: "status",
        type: "number",
        displayName: "Status",
        required: true,
        options: [
            {
                label: "Pending",
                value: "1"
            },
            {
                label: "Accepted",
                value: "2"
            },
            {
                label: "Rejected",
                value: "3"
            }
        ],
        defaultValue: () => {
            return 1;
        }
    }
]