mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 08:20:58 +00:00
137 lines
3.6 KiB
TypeScript
137 lines
3.6 KiB
TypeScript
import {
|
|
CompanyKind,
|
|
CompanyStatus,
|
|
CompanyType,
|
|
} from "../../modules/companies/entities/company.entity";
|
|
import {
|
|
ProfileStatus,
|
|
ProfileType,
|
|
} from "../../modules/companies/entities/company-profile.entity";
|
|
|
|
/**
|
|
* Canonical list of seeded Ethiopian government entities. Government bookings
|
|
* are billed to one of these (with an explicit importer/exporter profile)
|
|
* instead of carrying a null company + free-text institution.
|
|
*
|
|
* IDs are fixed so the seeder is idempotent and the matching migration
|
|
* (1821000000003-AddCompanyKindAndGovBookingLinks) can backfill legacy rows to
|
|
* the same companies. The migration mirrors these rows in raw SQL — keep both
|
|
* in sync when adding new entities.
|
|
*/
|
|
|
|
export const GOV_COMPANY_TYPE = CompanyType.Customer;
|
|
export const GOV_COMPANY_KIND = CompanyKind.Government;
|
|
export const GOV_COMPANY_STATUS = CompanyStatus.Active;
|
|
export const GOV_PROFILE_STATUS = ProfileStatus.Active;
|
|
|
|
export interface GovProfileSeed {
|
|
id: string;
|
|
type: ProfileType;
|
|
reference: string;
|
|
}
|
|
|
|
export interface GovCompanySeed {
|
|
id: string;
|
|
name: string;
|
|
tin: string;
|
|
email: string;
|
|
phone: string;
|
|
profiles: GovProfileSeed[];
|
|
}
|
|
|
|
const importExport = (
|
|
index: number,
|
|
importerId: string,
|
|
exporterId: string,
|
|
): GovProfileSeed[] => [
|
|
{
|
|
id: importerId,
|
|
type: ProfileType.importer,
|
|
reference: `IM-9000${index}`,
|
|
},
|
|
{
|
|
id: exporterId,
|
|
type: ProfileType.exporter,
|
|
reference: `EX-9000${index}`,
|
|
},
|
|
];
|
|
|
|
export const GOV_COMPANIES: GovCompanySeed[] = [
|
|
{
|
|
id: "0a1b0001-0000-4000-8000-000000000001",
|
|
name: "Federal Government of Ethiopia",
|
|
tin: "0000000001",
|
|
email: "procurement@gov.et",
|
|
phone: "+251111000001",
|
|
profiles: importExport(
|
|
1,
|
|
"0b1c0001-0000-4000-8000-000000000001",
|
|
"0b1c0001-0000-4000-8000-000000000002",
|
|
),
|
|
},
|
|
{
|
|
id: "0a1b0002-0000-4000-8000-000000000002",
|
|
name: "Ministry of National Defense",
|
|
tin: "0000000002",
|
|
email: "logistics@mod.gov.et",
|
|
phone: "+251111000002",
|
|
profiles: importExport(
|
|
2,
|
|
"0b1c0002-0000-4000-8000-000000000001",
|
|
"0b1c0002-0000-4000-8000-000000000002",
|
|
),
|
|
},
|
|
{
|
|
id: "0a1b0003-0000-4000-8000-000000000003",
|
|
name: "Ethiopian Roads Administration",
|
|
tin: "0000000003",
|
|
email: "supply@era.gov.et",
|
|
phone: "+251111000003",
|
|
profiles: importExport(
|
|
3,
|
|
"0b1c0003-0000-4000-8000-000000000001",
|
|
"0b1c0003-0000-4000-8000-000000000002",
|
|
),
|
|
},
|
|
{
|
|
id: "0a1b0004-0000-4000-8000-000000000004",
|
|
name: "Ministry of Agriculture",
|
|
tin: "0000000004",
|
|
email: "imports@moa.gov.et",
|
|
phone: "+251111000004",
|
|
profiles: importExport(
|
|
4,
|
|
"0b1c0004-0000-4000-8000-000000000001",
|
|
"0b1c0004-0000-4000-8000-000000000002",
|
|
),
|
|
},
|
|
{
|
|
id: "0a1b0005-0000-4000-8000-000000000005",
|
|
name: "Ministry of Trade and Regional Integration",
|
|
tin: "0000000005",
|
|
email: "trade@motri.gov.et",
|
|
phone: "+251111000005",
|
|
profiles: importExport(
|
|
5,
|
|
"0b1c0005-0000-4000-8000-000000000001",
|
|
"0b1c0005-0000-4000-8000-000000000002",
|
|
),
|
|
},
|
|
{
|
|
id: "0a1b0006-0000-4000-8000-000000000006",
|
|
name: "Ethiopian Disaster Risk Management Commission",
|
|
tin: "0000000006",
|
|
email: "relief@edrmc.gov.et",
|
|
phone: "+251111000006",
|
|
profiles: importExport(
|
|
6,
|
|
"0b1c0006-0000-4000-8000-000000000001",
|
|
"0b1c0006-0000-4000-8000-000000000002",
|
|
),
|
|
},
|
|
];
|
|
|
|
/** Fallback entity used to backfill legacy government / null-company bookings. */
|
|
export const DEFAULT_GOV_COMPANY = GOV_COMPANIES[0];
|
|
export const DEFAULT_GOV_IMPORTER_PROFILE = GOV_COMPANIES[0].profiles[0];
|