44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
// Role type as a string literal
|
|
export type Role = 'admin' | 'user';
|
|
|
|
// Status type as a string literal
|
|
export type Status = 'Active' | 'Inactive';
|
|
|
|
// Event type (you can expand this type as needed based on your schema)
|
|
export interface Event {
|
|
eventID: string;
|
|
title: string;
|
|
date: string; // Assuming ISO date string
|
|
}
|
|
|
|
// Blog type (you may already have this defined as shown in your previous example)
|
|
export interface Blog {
|
|
blogID: string;
|
|
slug: string;
|
|
content: string;
|
|
label?: string;
|
|
authorID: string;
|
|
published: string;
|
|
summary?: string;
|
|
image?: string;
|
|
href?: string;
|
|
|
|
author: User; // Relation to User
|
|
}
|
|
|
|
// User type definition
|
|
export interface User {
|
|
userID: string; // UUID represented as a string
|
|
firstName: string;
|
|
lastName: string;
|
|
email: string;
|
|
password?: string; // Optional field, since it's omitted in the JSON
|
|
phone: string;
|
|
role: Role; // 'admin' or 'user'
|
|
createdAt: string; // ISO date string
|
|
updatedAt: string; // ISO date string
|
|
|
|
events?: Event[]; // Many-to-many relation with Event (optional)
|
|
articles?: Blog[]; // One-to-many relation with Blog (optional)
|
|
}
|