package module.contract.domain; valueType pt.utl.ist.fenix.tools.util.i18n.MultiLanguageString as MultiLanguageString { externalizeWith { String exportAsString(); } internalizeWith importFromString(); } class Contract{ String internalIdentification; } class ContractSituation{ LocalDate beginDate; LocalDate endDate; LocalDate signatureDate; } class ContractSituationType{ MultiLanguageString name; } class Category{ } class CategoryType{ MultiLanguageString name; } class Regime{ MultiLanguageString name; } /** Relations **/ relation ContractAccountability { Contract playsRole contract; .module.organization.domain.Accountability playsRole accountability; } relation ContractContractSituation { Contract playsRole contract; ContractSituation playsRole contractSituations{ multiplicity *; } } relation CategoryContractSituation { Category playsRole category; ContractSituation playsRole contractSituations{ multiplicity *; } } relation RegimeContractSituation { Regime playsRole regime; ContractSituation playsRole contractSituations{ multiplicity *; } } relation CategoryTypeAccountabilityType { CategoryType playsRole categoryTypes{ multiplicity *; } .module.organization.domain.AccountabilityType playsRole accountabilityTypes{ multiplicity *; } } relation ContractSituationTypeContractSituation { ContractSituationType playsRole contractSituationType; ContractSituation playsRole contractSituation{ multiplicity *; } } relation CategoryTypeCategory { CategoryType playsRole categoryType; Category playsRole categories{ multiplicity *; } } relation MyOrgCategoryType { .pt.ist.bennu.core.domain.MyOrg playsRole myOrg; CategoryType playsRole categoryTypes { multiplicity *; } } relation MyOrgContractSituationType { .pt.ist.bennu.core.domain.MyOrg playsRole myOrg; ContractSituationType playsRole contractSituationTypes { multiplicity *; } } relation MyOrgCategory { .pt.ist.bennu.core.domain.MyOrg playsRole myOrg; Category playsRole categories { multiplicity *; } } relation MyOrgRegime { .pt.ist.bennu.core.domain.MyOrg playsRole myOrg; Regime playsRole regimes { multiplicity *; } } relation MyOrgContractSituation { .pt.ist.bennu.core.domain.MyOrg playsRole myOrg; ContractSituation playsRole contractSituations { multiplicity *; } } relation MyOrgContract { .pt.ist.bennu.core.domain.MyOrg playsRole myOrg; Contract playsRole contracts { multiplicity *; } }