mirror of
https://github.com/Dvorinka/Productier.git
synced 2026-06-04 20:43:02 +00:00
first commit
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
package store
|
||||
|
||||
import "time"
|
||||
|
||||
// Contact represents a person in the CRM
|
||||
type Contact struct {
|
||||
ID string `json:"id"`
|
||||
WorkspaceSlug string `json:"workspaceSlug"`
|
||||
FirstName string `json:"firstName"`
|
||||
LastName string `json:"lastName"`
|
||||
Email string `json:"email"`
|
||||
Phone string `json:"phone"`
|
||||
CompanyID *string `json:"companyId,omitempty"`
|
||||
CompanyName string `json:"companyName,omitempty"`
|
||||
Title string `json:"title"`
|
||||
Notes string `json:"notes"`
|
||||
AvatarURL string `json:"avatarUrl"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
// Company represents an organization in the CRM
|
||||
type Company struct {
|
||||
ID string `json:"id"`
|
||||
WorkspaceSlug string `json:"workspaceSlug"`
|
||||
Name string `json:"name"`
|
||||
Domain string `json:"domain"`
|
||||
Website string `json:"website"`
|
||||
Industry string `json:"industry"`
|
||||
Size string `json:"size"`
|
||||
Notes string `json:"notes"`
|
||||
LogoURL string `json:"logoUrl"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
// ContactTaskLink links a contact to a task
|
||||
type ContactTaskLink struct {
|
||||
ID string `json:"id"`
|
||||
ContactID string `json:"contactId"`
|
||||
TaskID string `json:"taskId"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
// ContactEventLink links a contact to an event
|
||||
type ContactEventLink struct {
|
||||
ID string `json:"id"`
|
||||
ContactID string `json:"contactId"`
|
||||
EventID string `json:"eventId"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
// InboxItem represents a quick capture item
|
||||
type InboxItem struct {
|
||||
ID string `json:"id"`
|
||||
WorkspaceSlug string `json:"workspaceSlug"`
|
||||
Content string `json:"content"`
|
||||
Source string `json:"source"`
|
||||
Processed bool `json:"processed"`
|
||||
ProcessedAt *time.Time `json:"processedAt,omitempty"`
|
||||
ProcessedEntityType *string `json:"processedEntityType,omitempty"`
|
||||
ProcessedEntityID *string `json:"processedEntityId,omitempty"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
// TimeEntry represents logged time
|
||||
type TimeEntry struct {
|
||||
ID string `json:"id"`
|
||||
WorkspaceSlug string `json:"workspaceSlug"`
|
||||
TaskID *string `json:"taskId,omitempty"`
|
||||
Description string `json:"description"`
|
||||
StartedAt time.Time `json:"startedAt"`
|
||||
EndedAt *time.Time `json:"endedAt,omitempty"`
|
||||
DurationSeconds int `json:"durationSeconds"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
// SavedView represents a user's saved filter/view
|
||||
type SavedView struct {
|
||||
ID string `json:"id"`
|
||||
WorkspaceSlug string `json:"workspaceSlug"`
|
||||
Name string `json:"name"`
|
||||
EntityType string `json:"entityType"`
|
||||
FilterJSON string `json:"filterJson"`
|
||||
SortJSON string `json:"sortJson"`
|
||||
IsDefault bool `json:"isDefault"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
// CreateContactInput for creating contacts
|
||||
type CreateContactInput struct {
|
||||
WorkspaceSlug string `json:"workspaceSlug" binding:"required"`
|
||||
FirstName string `json:"firstName"`
|
||||
LastName string `json:"lastName"`
|
||||
Email string `json:"email"`
|
||||
Phone string `json:"phone"`
|
||||
CompanyID *string `json:"companyId"`
|
||||
Title string `json:"title"`
|
||||
Notes string `json:"notes"`
|
||||
}
|
||||
|
||||
// UpdateContactInput for updating contacts
|
||||
type UpdateContactInput struct {
|
||||
FirstName *string `json:"firstName"`
|
||||
LastName *string `json:"lastName"`
|
||||
Email *string `json:"email"`
|
||||
Phone *string `json:"phone"`
|
||||
CompanyID *string `json:"companyId"`
|
||||
Title *string `json:"title"`
|
||||
Notes *string `json:"notes"`
|
||||
}
|
||||
|
||||
// CreateCompanyInput for creating companies
|
||||
type CreateCompanyInput struct {
|
||||
WorkspaceSlug string `json:"workspaceSlug" binding:"required"`
|
||||
Name string `json:"name" binding:"required"`
|
||||
Domain string `json:"domain"`
|
||||
Website string `json:"website"`
|
||||
Industry string `json:"industry"`
|
||||
Size string `json:"size"`
|
||||
Notes string `json:"notes"`
|
||||
}
|
||||
|
||||
// UpdateCompanyInput for updating companies
|
||||
type UpdateCompanyInput struct {
|
||||
Name *string `json:"name"`
|
||||
Domain *string `json:"domain"`
|
||||
Website *string `json:"website"`
|
||||
Industry *string `json:"industry"`
|
||||
Size *string `json:"size"`
|
||||
Notes *string `json:"notes"`
|
||||
}
|
||||
|
||||
// CreateInboxItemInput for quick capture
|
||||
type CreateInboxItemInput struct {
|
||||
WorkspaceSlug string `json:"workspaceSlug" binding:"required"`
|
||||
Content string `json:"content" binding:"required"`
|
||||
Source string `json:"source"`
|
||||
}
|
||||
|
||||
// CreateTimeEntryInput for time tracking
|
||||
type CreateTimeEntryInput struct {
|
||||
WorkspaceSlug string `json:"workspaceSlug" binding:"required"`
|
||||
TaskID *string `json:"taskId"`
|
||||
Description string `json:"description"`
|
||||
StartedAt time.Time `json:"startedAt" binding:"required"`
|
||||
EndedAt *time.Time `json:"endedAt"`
|
||||
}
|
||||
|
||||
// UpdateTimeEntryInput for updating time entries
|
||||
type UpdateTimeEntryInput struct {
|
||||
Description *string `json:"description"`
|
||||
EndedAt *time.Time `json:"endedAt"`
|
||||
}
|
||||
|
||||
// CreateSavedViewInput for saved views
|
||||
type CreateSavedViewInput struct {
|
||||
WorkspaceSlug string `json:"workspaceSlug" binding:"required"`
|
||||
Name string `json:"name" binding:"required"`
|
||||
EntityType string `json:"entityType" binding:"required"`
|
||||
FilterJSON string `json:"filterJson"`
|
||||
SortJSON string `json:"sortJson"`
|
||||
IsDefault bool `json:"isDefault"`
|
||||
}
|
||||
Reference in New Issue
Block a user