diff --git a/src/client/types.ts b/src/client/types.ts index 9b50c0f2e3bcf7ee76917538416c9428673b1c0e..72d1328499665113f818ffd02f3e1204d84514fd 100644 --- a/src/client/types.ts +++ b/src/client/types.ts @@ -1,4 +1,4 @@ -import { Profile } from '../types/types'; +import { IProfile } from '../types/Profile'; export type EmptyReq = undefined; @@ -11,5 +11,5 @@ export type RegisterReq = { password: string; }; export type UserResponse = { - user: Profile; + user: IProfile; }; diff --git a/src/context/UserContext.tsx b/src/context/UserContext.tsx index 4a9de33994518c115aacba0dce7c0ef423fb07ac..6dbe3ef4ed5241ff2d06c7fac61b90dd2b54c403 100644 --- a/src/context/UserContext.tsx +++ b/src/context/UserContext.tsx @@ -1,27 +1,27 @@ import React, { createContext, useState } from 'react'; -import { Profile, Role } from '../types/types'; +import { IProfile, Role } from '../types/Profile'; interface ContextProps { - profile: Profile; - setProfile: (profile: Profile) => void; + profile: IProfile; + setProfile: (profile: IProfile) => void; } // Context -const initialState: Profile = { - external_id: 'abcd', +const initialState: IProfile = { + externalId: 'abcd', studentCardNumber: '1234', - roomNumber: '104', - picture: 'alma.jpg', + roomNumber: 104, role: Role.User, email: 'alma@gmail.com', name: 'Nagy Gizike', warnings: [], + notices: [], }; export const userContext = createContext({} as ContextProps); const { Provider } = userContext; export const UserStateProvider: React.FC = ({ children }) => { - const [profile, setProfile] = useState<Profile>(initialState); + const [profile, setProfile] = useState<IProfile>(initialState); return <Provider value={{ profile, setProfile }}>{children}</Provider>; }; diff --git a/src/types/News.ts b/src/types/News.ts new file mode 100644 index 0000000000000000000000000000000000000000..c2c6470b389b9ef51438d7420105d3530f0c032a --- /dev/null +++ b/src/types/News.ts @@ -0,0 +1,7 @@ +export interface INews { + title: string; + text: string; + publishedAt: Date; + publishedBy: string; + updatedBy?: string; +} diff --git a/src/types/Profile.ts b/src/types/Profile.ts new file mode 100644 index 0000000000000000000000000000000000000000..190d3cbc23b0019d864b036fa3e03769787e17ac --- /dev/null +++ b/src/types/Profile.ts @@ -0,0 +1,33 @@ +export enum Role { + Admin = 'ADMIN', + User = 'USER', +} + +export interface INotice { + _id: string; + text: string; + redirect?: string; + isSeen: boolean; +} + +export interface IWarning { + _id: string; + text: string; + date: Date; + givenBy: string; +} + +export interface IProfile { + externalId: string; + studentCardNumber?: string; + roomNumber?: Number; + newPicture?: string; + acceptedPicture?: string; + role: Role; + email: string; + name: string; + isStaffMember?: boolean; + staffMemberText?: string; + warnings: IWarning[]; + notices: INotice[]; +} diff --git a/src/types/Term.ts b/src/types/Term.ts new file mode 100644 index 0000000000000000000000000000000000000000..95267d0f0049d2c09690643695204cdde53b06f7 --- /dev/null +++ b/src/types/Term.ts @@ -0,0 +1,29 @@ +export enum MemberState { + Accepted = 'ACCEPTED', + Applied = 'APPLIED', + Rejected = 'REJECTED', +} + +export enum CardState { + Created = 'CREATED', + Printed = 'PRINTED', + Given = 'GIVEN', +} + +export interface IMember { + user: string; + memberState: MemberState; + cardState: CardState; + cardNumber: number; + cardReceiveDate?: Date; +} + +export interface ITerm { + backgroundFile?: string; + name: string; + createDate?: Date; + startDate: Date; + endDate: Date; + deadline: Date; + members: IMember[]; +} diff --git a/src/types/types.ts b/src/types/types.ts deleted file mode 100644 index 23e1422b2a7f798168c27ff6a29b9d89c0b7e753..0000000000000000000000000000000000000000 --- a/src/types/types.ts +++ /dev/null @@ -1,31 +0,0 @@ -export enum Role { - Admin, - Staff, - User, -} - -export interface Profile { - external_id: string; - studentCardNumber: string; - roomNumber?: string; - picture: string; - role: Role.Admin | Role.Staff | Role.User; - email?: string; - name?: string; - warnings: [Warnings] | []; -} - -export interface Warnings { - text: string; - date: Date; - given_by: { - _id: string; - name: string; - }; -} - -export interface News { - title: string; - text: string; - publishedAt: string; -}