Files
History_Api/internal/models/commit.go
AzenKain 6918a100fc
All checks were successful
Build and Release / release (push) Successful in 1m15s
Module project, commit, submission
2026-04-26 16:31:03 +07:00

49 lines
1.2 KiB
Go

package models
import (
"encoding/json"
"history-api/internal/dtos/response"
"time"
)
type CommitEntity struct {
ID string `json:"id"`
ProjectID string `json:"project_id"`
SnapshotJson json.RawMessage `json:"snapshot_json"`
SnapshotHash string `json:"snapshot_hash"`
UserID string `json:"user_id"`
EditSummary string `json:"edit_summary"`
IsDeleted bool `json:"is_deleted"`
CreatedAt *time.Time `json:"created_at"`
User *UserSimpleEntity `json:"user"`
}
func (c *CommitEntity) ToResponse() *response.CommitResponse {
if c == nil {
return nil
}
var userRes *response.UserSimpleResponse
if c.User != nil {
userRes = c.User.ToResponse()
}
return &response.CommitResponse{
ID: c.ID,
ProjectID: c.ProjectID,
SnapshotJson: c.SnapshotJson,
SnapshotHash: c.SnapshotHash,
UserID: c.UserID,
EditSummary: c.EditSummary,
CreatedAt: c.CreatedAt,
User: userRes,
}
}
func CommitsEntityToResponse(entities []*CommitEntity) []*response.CommitResponse {
res := make([]*response.CommitResponse, 0, len(entities))
for _, e := range entities {
res = append(res, e.ToResponse())
}
return res
}