Merge branch 'main' of https://git.eigen.co.id/eigen/fe-monorepo-template into core/page-provider

This commit is contained in:
Firman Ramdhani
2026-07-06 12:25:00 +07:00
18 changed files with 1725 additions and 370 deletions
@@ -1,2 +1,3 @@
export * from './item.pouchdb.entity';
export * from './pos-configuration.pouchdb.entity';
export * from './new-item.pouchdb.entity';
@@ -0,0 +1,51 @@
export interface SeasonType {
name: string;
}
export interface SeasonPeriod {
start_date: string;
end_date: string;
season_type: SeasonType;
}
export interface ItemRate {
id: string;
price: string;
season_period: SeasonPeriod;
}
export interface ItemCategory {
id: string;
name: string;
}
/**
* Detailed interface for an Item entity, based on the provided JSON sample.
* This represents the business data payload (`data` property in the envelope).
*/
export interface NewItemData {
id: string;
creator_id: string;
creator_name: string;
created_at: string;
updated_at: string;
status: 'active' | 'inactive' | string;
item_type: string;
hpp: string;
sales_margin: string;
share_profit: string;
total_price: number;
base_price: string;
play_estimation: number;
use_queue: boolean;
show_to_booking: boolean;
breakdown_bundling: boolean;
limit_type: string;
limit_value: number;
item_category_id: string;
item_category: ItemCategory;
item_rates: ItemRate[];
price: string;
qty: number;
name: string;
}
+14 -4
View File
@@ -3,16 +3,17 @@
*
* This module demonstrates the IoC pattern: the consuming app decides
* which databases to create and where they sync to. The core engine
* (`PouchDatabaseManager`) has zero knowledge of business domains.
* (`PouchDBManager` and `PouchEnvelopeManager`) has zero knowledge of business domains.
*/
import { ENV } from '../../environment';
import { PouchDatabaseManager } from '@repo/core-storage';
import { PouchDBManager, PouchEnvelopeDBManager } from '@repo/core-storage';
import { ItemEntity, POSConfigurationEntity } from './entities';
// ─── Manager Singleton ──────────────────────────────────────────
// ─── Manager Singletons ──────────────────────────────────────────
export const dbManager = new PouchDatabaseManager();
export const dbManager = new PouchDBManager();
export const envelopeDbManager = new PouchEnvelopeDBManager();
// ─── Helper: Build Secure Remote URL ────────────────────────────
@@ -54,3 +55,12 @@ export const itemDB = dbManager.register<ItemEntity>({
localName: 'item',
remoteUrl: buildRemoteUrl('item'),
});
/** New Items database using the Envelope Service pattern. */
export const newItemDB = envelopeDbManager.register(
{
localName: 'master_data',
remoteUrl: buildRemoteUrl('master_data'),
},
'item',
);