ZyncProject

data class ZyncProject(val projectUid: String, val projectPrefix: String? = null, val projectNumber: Int, val projectName: String, val projectPriority: ZyncProjectPriority = ZyncProjectPriority.MEDIUM, val projectDescription: String? = null, val projectImageUrl: String? = null, val projectStartDate: String? = null, val projectEndDate: String? = null, val projectDueDate: String? = null, val customerUid: String? = null, val customer: ZyncCustomer? = null, val organizationUid: String? = null, val organization: ZyncOrganization? = null, val projectManagerUid: String? = null, val projectManager: User? = null, val projectCategoryUid: String? = null, val projectCategory: ZyncProjectCategory? = null, val pricelistUid: String? = null, val currentStatusUid: String? = null, val currentStatusName: String? = null, val currentStatusType: ZyncProjectStatusType = ZyncProjectStatusType.PENDING, val currentStatusColor: String? = null, val isActive: Boolean = true, val isBillable: Boolean = true, val restrictToProjectProducts: Boolean = false, val syncProductsToJobs: Boolean = false, val projectTags: List<String> = emptyList(), val projectDependencies: List<ZyncProjectDependency> = emptyList(), val serviceAddress: ZyncProjectAddress? = null, val billingAddress: ZyncProjectAddress? = null, val customFields: List<ZyncProjectCustomField> = emptyList(), val progressiveInvoice: ZyncProjectProgressiveInvoice? = null, val projectConfig: ZyncProjectConfig? = null, val assignments: List<ZyncProjectAssignment> = emptyList(), val statusHistory: List<ZyncProjectStatusHistory> = emptyList(), val phases: List<ZyncProjectPhase> = emptyList(), val milestones: List<ZyncProjectMilestone> = emptyList(), val properties: List<ZyncProjectPropertyAssociation> = emptyList(), val assets: List<ZyncProjectAssetAssociation> = emptyList(), val contracts: List<ZyncProjectContractAssociation> = emptyList(), val jobs: List<ZyncProjectJobAssociation> = emptyList(), val products: List<ZyncProjectProductAssociation> = emptyList(), val attachments: List<String> = emptyList(), val companyUid: String, val createdAt: String, val updatedAt: String? = null, val syncedAt: String? = null)

Domain model representing a Project in the Zuper system.

Projects are comprehensive work containers that organize jobs, resources, and timelines for complex service delivery scenarios.

Constructors

Link copied to clipboard
constructor(projectUid: String, projectPrefix: String? = null, projectNumber: Int, projectName: String, projectPriority: ZyncProjectPriority = ZyncProjectPriority.MEDIUM, projectDescription: String? = null, projectImageUrl: String? = null, projectStartDate: String? = null, projectEndDate: String? = null, projectDueDate: String? = null, customerUid: String? = null, customer: ZyncCustomer? = null, organizationUid: String? = null, organization: ZyncOrganization? = null, projectManagerUid: String? = null, projectManager: User? = null, projectCategoryUid: String? = null, projectCategory: ZyncProjectCategory? = null, pricelistUid: String? = null, currentStatusUid: String? = null, currentStatusName: String? = null, currentStatusType: ZyncProjectStatusType = ZyncProjectStatusType.PENDING, currentStatusColor: String? = null, isActive: Boolean = true, isBillable: Boolean = true, restrictToProjectProducts: Boolean = false, syncProductsToJobs: Boolean = false, projectTags: List<String> = emptyList(), projectDependencies: List<ZyncProjectDependency> = emptyList(), serviceAddress: ZyncProjectAddress? = null, billingAddress: ZyncProjectAddress? = null, customFields: List<ZyncProjectCustomField> = emptyList(), progressiveInvoice: ZyncProjectProgressiveInvoice? = null, projectConfig: ZyncProjectConfig? = null, assignments: List<ZyncProjectAssignment> = emptyList(), statusHistory: List<ZyncProjectStatusHistory> = emptyList(), phases: List<ZyncProjectPhase> = emptyList(), milestones: List<ZyncProjectMilestone> = emptyList(), properties: List<ZyncProjectPropertyAssociation> = emptyList(), assets: List<ZyncProjectAssetAssociation> = emptyList(), contracts: List<ZyncProjectContractAssociation> = emptyList(), jobs: List<ZyncProjectJobAssociation> = emptyList(), products: List<ZyncProjectProductAssociation> = emptyList(), attachments: List<String> = emptyList(), companyUid: String, createdAt: String, updatedAt: String? = null, syncedAt: String? = null)

Properties

Link copied to clipboard

Get active phases.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Get completed jobs count.

Link copied to clipboard

Get completed milestones.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Get current assignees (users and teams).

Link copied to clipboard

Get current phase.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val customer: ZyncCustomer? = null
Link copied to clipboard
val customerUid: String? = null
Link copied to clipboard
Link copied to clipboard

Get project display name with fallback.

Link copied to clipboard

Get project duration in days.

Link copied to clipboard

Get project full identifier.

Link copied to clipboard

Get invoiced value from completed milestones.

Link copied to clipboard
val isActive: Boolean = true
Link copied to clipboard
val isBillable: Boolean = true
Link copied to clipboard

Check if project is cancelled.

Link copied to clipboard

Check if project is completed.

Link copied to clipboard

Check if project is in progress.

Link copied to clipboard

Check if project is overdue.

Link copied to clipboard

Get job completion percentage.

Link copied to clipboard
Link copied to clipboard

Get project jobs count.

Link copied to clipboard

Get latest status change.

Link copied to clipboard

Get project manager assignment.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val organizationUid: String? = null
Link copied to clipboard

Get overdue milestones.

Link copied to clipboard

Get pending milestones.

Link copied to clipboard
Link copied to clipboard
val pricelistUid: String? = null
Link copied to clipboard
Link copied to clipboard

Get priority color for UI display.

Link copied to clipboard
Link copied to clipboard

Get project progress percentage.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val projectDueDate: String? = null
Link copied to clipboard
val projectEndDate: String? = null
Link copied to clipboard
val projectImageUrl: String? = null
Link copied to clipboard
val projectManager: User? = null
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val projectPrefix: String? = null
Link copied to clipboard
Link copied to clipboard

Get project products configuration.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Get project value from milestones.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Get status color for UI display.

Link copied to clipboard
Link copied to clipboard
val syncedAt: String? = null
Link copied to clipboard
Link copied to clipboard
val updatedAt: String? = null

Functions

Link copied to clipboard
fun hasAsset(assetUid: String): Boolean

Check if project has specific asset.

Link copied to clipboard
fun hasContract(contractUid: String): Boolean

Check if project has specific contract.

Link copied to clipboard
fun hasProperty(propertyUid: String): Boolean

Check if project has specific property.

Link copied to clipboard

Check if project is assigned to a specific team.

Link copied to clipboard

Check if project is assigned to a specific user.