mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 09:30:59 +00:00
feat: add government support to the companies. add seeding and constrain on booking
This commit is contained in:
136
apps/edr-freight-api/src/seed/data/gov-companies.data.ts
Normal file
136
apps/edr-freight-api/src/seed/data/gov-companies.data.ts
Normal file
@@ -0,0 +1,136 @@
|
||||
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];
|
||||
Reference in New Issue
Block a user