// Copyright 2026 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package structs import ( "time" ) // Project represents a project // swagger:model type Project struct { // ID is the unique identifier for the project ID int64 `json:"id"` // Title is the title of the project Title string `json:"title"` // Description provides details about the project Description string `json:"description"` // OwnerID is the owner of the project (for org-level projects) OwnerID int64 `json:"owner_id,omitempty"` // RepoID is the repository this project belongs to (for repo-level projects) RepoID int64 `json:"repo_id,omitempty"` // CreatorID is the user who created the project CreatorID int64 `json:"creator_id"` // IsClosed indicates if the project is closed IsClosed bool `json:"is_closed"` // swagger:strfmt date-time Created time.Time `json:"created_at"` // swagger:strfmt date-time Updated time.Time `json:"updated_at"` // swagger:strfmt date-time Closed *time.Time `json:"closed_at,omitempty"` } // ProjectColumn represents a column in a project // swagger:model type ProjectColumn struct { // ID is the unique identifier for the column ID int64 `json:"id"` // Title is the title of the column Title string `json:"title"` // Color is the optional column color Color string `json:"color"` // Sorting is the column position Sorting int8 `json:"sorting"` } // MoveProjectIssueOption options for moving an issue inside a project // swagger:model type MoveProjectIssueOption struct { // ColumnID is the destination project column // required: true ColumnID int64 `json:"column_id" binding:"Required"` // Sorting is the optional position inside the destination column Sorting *int64 `json:"sorting,omitempty"` }