package org.dromara.pet.domain.bo;

import org.dromara.pet.domain.BizPets;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 宠物基础档案业务对象 biz_pets
 *
 * @author shuo
 * @date 2026-02-26
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BizPets.class,reverseConvertGenerate =false)

public class BizPetsBo extends BaseEntity {

            /**
             * 主键ID
             */
        private Long id;

            /**
             * 归属用户ID
             */
        private Long userId;

            /**
             * 宠物昵称
             */
        private String name;

            /**
             * 物种(DOG狗/CAT猫)
             */
        private String species;

            /**
             * 品种
             */
                @NotBlank(message = "品种不能为空", groups = { AddGroup.class, EditGroup.class })
        private String breed;

            /**
             * 出生日期
             */
                @NotNull(message = "出生日期不能为空", groups = { AddGroup.class, EditGroup.class })
        private Date birthDate;

            /**
             * 体重(公斤)
             */
                @NotNull(message = "体重(公斤)不能为空", groups = { AddGroup.class, EditGroup.class })
        private Long weightKg;

            /**
             * 性别(MALE公/FEMALE母)
             */
                @NotBlank(message = "性别(MALE公/FEMALE母)不能为空", groups = { AddGroup.class, EditGroup.class })
        private String gender;

            /**
             * 是否绝育(Y/N)
             */
                @NotBlank(message = "是否绝育(Y/N)不能为空", groups = { AddGroup.class, EditGroup.class })
        private String isNeutered;

            /**
             * 头像链接
             */
                @NotBlank(message = "头像链接不能为空", groups = { AddGroup.class, EditGroup.class })
        private String avatarUrl;

            /**
             * 业务创建时间
             */
                @NotNull(message = "业务创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
        private Date createdAt;

            /**
             * 业务更新时间
             */
                @NotNull(message = "业务更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
        private Date updatedAt;


}
