diff --git a/backend/internal/database/models.go b/backend/internal/database/models.go index 11cf4e7..36b1dae 100644 --- a/backend/internal/database/models.go +++ b/backend/internal/database/models.go @@ -88,6 +88,7 @@ type Wish struct { ID int64 Guid pgtype.UUID WishListID int64 + WishListGuid pgtype.UUID Name string Description string PictureUrl string diff --git a/backend/internal/utils/mapSpecial/wishDto.go b/backend/internal/utils/mapSpecial/wishDto.go new file mode 100644 index 0000000..39637c9 --- /dev/null +++ b/backend/internal/utils/mapSpecial/wishDto.go @@ -0,0 +1,37 @@ +// Copyright (c) 2025 Nikolai Papin +// +// This file is part of Easywish +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +// the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package mapspecial + +import ( + "easywish/internal/database" + "easywish/internal/dto" + + "github.com/rafiulgits/go-automapper" +) + +func MapWishDto(dbModel database.Wish, dtoModel *dto.WishDto) { + if dtoModel == nil { + dtoModel = &dto.WishDto{} + } + automapper.Map(&dbModel, dtoModel, func(src *database.Wish, dst *dto.WishDto) { + dst.Guid = src.Guid.String() + dst.WishListGuid = src.WishListGuid.String() + dst.CreationDate = src.CreationDate.Time.UnixMilli() + dst.FulfilledDate = src.FulfilledDate.Time.UnixMilli() + }) +} diff --git a/sqlc/schema.sql b/sqlc/schema.sql index 522ea30..ed04b80 100644 --- a/sqlc/schema.sql +++ b/sqlc/schema.sql @@ -111,6 +111,7 @@ CREATE TABLE IF NOT EXISTS "wishes" ( id BIGSERIAL PRIMARY KEY, guid UUID UNIQUE NOT NULL DEFAULT gen_random_uuid(), wish_list_id BIGINT UNIQUE NOT NULL REFERENCES wish_lists(id) ON DELETE CASCADE, + wish_list_guid UUID NOT NULL REFERENCES wish_lists(guid) ON DELETE CASCADE, name VARCHAR(64) NOT NULL DEFAULT 'New wish', description VARCHAR(1000) NOT NULL DEFAULT '', picture_url VARCHAR(512) NOT NULL DEFAULT '',