/home/bdqbpbxa/dev-subdomains/admin.pixory.goodface.com.ua/src/api/project/common/types/project.ts
import { Data } from "@strapi/strapi";
import { EditorType } from "../enums/editor-type";

export type Project = Data.ContentType<'api::project.project'>;

export type PrintboxProject = {
  id: number;
  uuid: string;
  name: string;
  customer_id: number;
  store_id: number;
  duplicated_from: string | null;
  family_id: number | null;
  editor_type: EditorType;
  editor_context: {
    is_rwd_first_save: boolean;
    is_rwd_last_save: boolean;
    is_created_with_smart: boolean;
  };
  estimated_weight: number;
  create_time: string; // date-time
  update_time: string; // date-time
  price_gross: number;
  price_net: number;
  currency: string;
  order_id: number | null;
  order_status: string;
  quantity: number;
  barcode: string | null;
  text_under_barcode: string | null;
  thumbnail_url: string | null; // uri
  render_time: string | null; // date-time
  render_status: string | null;
  render_url: string | null; // uri
  preflight_render_time: string | null; // date-time
  preflight_render_status: string;
  preflight_render_url: string | null; // uri
  synchronize_time: string | null; // date-time
  synchronize_status: string;
  params: [{
    page_count: number;
    attribute_values_ids: number[];
    price_net: number;
    price_gross: number;
  }];
  customer_comment: Record<string, unknown>;
  product: {
    id: number;
    display_name: Record<string, string>; // localized
  };
  estimated_weight_unit: string;
};

export type ProductResponse = Project & {
  defaultPages: number;
  additionalPages: number;

  defaultPagesPrice: number;
  additionalPagesPrice: number;

  discountedDefaultPagesPrice: number | null;
  discountedAdditionalPagesPrice: number | null;
  
  subtotal: number;
  subtotalDiscounted: number;
  discount: number;
}