import { Internship } from "@/data"; import { ReceiveSubmissionApproveAction, ReceiveSubmissionDeclineAction, ReceiveSubmissionUpdateAction, SaveSubmissionAction, SendSubmissionAction } from "@/state/actions/submission"; import { SubmissionState } from "@/api/dto/internship-registration"; export enum InternshipProposalActions { Send = "SEND_PROPOSAL", Save = "SAVE_PROPOSAL", Approve = "RECEIVE_PROPOSAL_APPROVE", Decline = "RECEIVE_PROPOSAL_DECLINE", Receive = "RECEIVE_PROPOSAL_STATE", } export interface SendProposalAction extends SendSubmissionAction { } export interface ReceiveProposalApproveAction extends ReceiveSubmissionApproveAction { } export interface ReceiveProposalDeclineAction extends ReceiveSubmissionDeclineAction { } export interface ReceiveProposalUpdateAction extends ReceiveSubmissionUpdateAction { internship: Internship; state: SubmissionState; comment?: string; grade?: number; } export interface SaveProposalAction extends SaveSubmissionAction { internship: Internship; } export type InternshipProposalAction = SendProposalAction | SaveProposalAction | ReceiveProposalApproveAction | ReceiveProposalDeclineAction | ReceiveProposalUpdateAction;