You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

orderInterface.ts 1006B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { ProductData } from './productInterface';
  2. import { UserData } from './userInterface';
  3. import { ObjectId } from 'mongodb';
  4. export interface OrderCard {
  5. date: Date;
  6. name: string;
  7. totalPrice: number;
  8. }
  9. export interface OrderSummary {
  10. totalPrice: number;
  11. totalQuantity: number;
  12. }
  13. interface ShippingData extends UserData {
  14. email: string;
  15. }
  16. export interface OrderData {
  17. products: Array<ProductData>;
  18. time: Date;
  19. shippingAddress: ShippingData;
  20. totalPrice: number;
  21. numberOfItems: number;
  22. fulfilled: boolean;
  23. owner: ObjectId;
  24. stripeCheckoutId: string;
  25. }
  26. export interface OrderDataDB extends OrderData {
  27. id: string;
  28. _id: string;
  29. __v: number;
  30. }
  31. export interface OrderResponseGet {
  32. message: string;
  33. orders: Array<OrderDataDB>;
  34. }
  35. export interface OrderResponsePost {
  36. message: string;
  37. order: OrderDataDB;
  38. }
  39. export interface OrderResponseError {
  40. message: string;
  41. }
  42. export type OrderResponse =
  43. | OrderResponseGet
  44. | OrderResponsePost
  45. | OrderResponseError;