Files
latosa-escrima/frontend/types/types.tsx
2025-01-17 15:38:36 +01:00

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)
}