ALL 0.1.0 Code

This commit is contained in:
2026-02-28 04:21:27 +00:00
commit 7958510989
76 changed files with 17135 additions and 0 deletions

View File

@@ -0,0 +1,184 @@
package models
import (
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type User struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
Name string `bson:"name" json:"name"`
Email string `bson:"email" json:"email"`
PasswordHash string `bson:"password_hash" json:"-"`
AvatarURL string `bson:"avatar_url,omitempty" json:"avatar_url,omitempty"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type Team struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
Name string `bson:"name" json:"name"`
WorkspaceID string `bson:"workspace_id" json:"workspace_id"`
AvatarURL string `bson:"avatar_url,omitempty" json:"avatar_url,omitempty"`
BannerURL string `bson:"banner_url,omitempty" json:"banner_url,omitempty"`
CreatedBy primitive.ObjectID `bson:"created_by" json:"created_by"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type TeamMember struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
TeamID primitive.ObjectID `bson:"team_id" json:"team_id"`
UserID primitive.ObjectID `bson:"user_id" json:"user_id"`
RoleFlags int `bson:"role_flags" json:"role_flags"`
InvitedBy primitive.ObjectID `bson:"invited_by" json:"invited_by"`
JoinedAt time.Time `bson:"joined_at" json:"joined_at"`
}
type Project struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
TeamID primitive.ObjectID `bson:"team_id" json:"team_id"`
Name string `bson:"name" json:"name"`
Description string `bson:"description" json:"description"`
Visibility string `bson:"visibility" json:"visibility"`
IsPublic bool `bson:"is_public" json:"is_public"`
IsArchived bool `bson:"is_archived" json:"is_archived"`
CreatedBy primitive.ObjectID `bson:"created_by" json:"created_by"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type ProjectMember struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
ProjectID primitive.ObjectID `bson:"project_id" json:"project_id"`
UserID primitive.ObjectID `bson:"user_id" json:"user_id"`
RoleFlags int `bson:"role_flags" json:"role_flags"`
AddedAt time.Time `bson:"added_at" json:"added_at"`
}
type BoardColumn struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
ProjectID primitive.ObjectID `bson:"project_id" json:"project_id"`
Title string `bson:"title" json:"title"`
Position int `bson:"position" json:"position"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type Subtask struct {
ID int `bson:"id" json:"id"`
Text string `bson:"text" json:"text"`
Done bool `bson:"done" json:"done"`
}
type Card struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
ColumnID primitive.ObjectID `bson:"column_id" json:"column_id"`
ProjectID primitive.ObjectID `bson:"project_id" json:"project_id"`
Title string `bson:"title" json:"title"`
Description string `bson:"description" json:"description"`
Priority string `bson:"priority" json:"priority"`
Color string `bson:"color" json:"color"`
DueDate *time.Time `bson:"due_date,omitempty" json:"due_date,omitempty"`
Assignees []string `bson:"assignees" json:"assignees"`
Subtasks []Subtask `bson:"subtasks" json:"subtasks"`
Position int `bson:"position" json:"position"`
CreatedBy primitive.ObjectID `bson:"created_by" json:"created_by"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type Event struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
Title string `bson:"title" json:"title"`
Date string `bson:"date" json:"date"`
Time string `bson:"time" json:"time"`
Color string `bson:"color" json:"color"`
Description string `bson:"description" json:"description"`
Scope string `bson:"scope" json:"scope"`
ScopeID primitive.ObjectID `bson:"scope_id" json:"scope_id"`
CreatedBy primitive.ObjectID `bson:"created_by" json:"created_by"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type Notification struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
UserID primitive.ObjectID `bson:"user_id" json:"user_id"`
Type string `bson:"type" json:"type"`
Message string `bson:"message" json:"message"`
ProjectID primitive.ObjectID `bson:"project_id" json:"project_id"`
CardID primitive.ObjectID `bson:"card_id,omitempty" json:"card_id,omitempty"`
Read bool `bson:"read" json:"read"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
}
type Doc struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
TeamID primitive.ObjectID `bson:"team_id" json:"team_id"`
Title string `bson:"title" json:"title"`
Content string `bson:"content" json:"content"`
CreatedBy primitive.ObjectID `bson:"created_by" json:"created_by"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type File struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
ProjectID primitive.ObjectID `bson:"project_id,omitempty" json:"project_id,omitempty"`
TeamID primitive.ObjectID `bson:"team_id,omitempty" json:"team_id,omitempty"`
UserID primitive.ObjectID `bson:"user_id,omitempty" json:"user_id,omitempty"`
Name string `bson:"name" json:"name"`
Type string `bson:"type" json:"type"`
SizeBytes int64 `bson:"size_bytes" json:"size_bytes"`
ParentID *primitive.ObjectID `bson:"parent_id,omitempty" json:"parent_id,omitempty"`
StorageURL string `bson:"storage_url,omitempty" json:"storage_url,omitempty"`
CreatedBy primitive.ObjectID `bson:"created_by" json:"created_by"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type Webhook struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
ProjectID primitive.ObjectID `bson:"project_id" json:"project_id"`
Name string `bson:"name" json:"name"`
Type string `bson:"type" json:"type"`
URL string `bson:"url" json:"url"`
SecretHash string `bson:"secret_hash,omitempty" json:"-"`
Status string `bson:"status" json:"status"`
LastTriggered *time.Time `bson:"last_triggered,omitempty" json:"last_triggered,omitempty"`
CreatedBy primitive.ObjectID `bson:"created_by" json:"created_by"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type Whiteboard struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
ProjectID primitive.ObjectID `bson:"project_id" json:"project_id"`
Data string `bson:"data" json:"data"`
CreatedBy primitive.ObjectID `bson:"created_by" json:"created_by"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
type APIKey struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
UserID primitive.ObjectID `bson:"user_id" json:"user_id"`
Name string `bson:"name" json:"name"`
Scopes []string `bson:"scopes" json:"scopes"`
KeyHash string `bson:"key_hash" json:"-"`
Prefix string `bson:"prefix" json:"prefix"`
LastUsed *time.Time `bson:"last_used,omitempty" json:"last_used,omitempty"`
RevokedAt *time.Time `bson:"revoked_at,omitempty" json:"revoked_at,omitempty"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
}
type ChatMessage struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
TeamID primitive.ObjectID `bson:"team_id" json:"team_id"`
UserID primitive.ObjectID `bson:"user_id" json:"user_id"`
UserName string `bson:"user_name" json:"user_name"`
Content string `bson:"content" json:"content"`
CreatedAt time.Time `bson:"created_at" json:"created_at"`
}