package com.jwipc.aggregation.annotation;

import java.lang.annotation.*;

/**
 * 主要用于VO对象关系的 数据聚合注解。标注通过关联表字段主表聚合字段的规则。
 *
 * @author zhangjie
 * @version 2023.07
 * @since back_repo 2023.07
 */
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RelationAggregationField {

    /**
     * 当前对象的关联Id字段名称。
     *
     * @return 当前对象的关联Id字段名称。
     */
    String masterIdField();

    /**
     * 被关联对象的关联Id字段名称。
     *
     * @return 被关联对象的关联Id字段名称。
     */
    String relationIdField();

    String relationNameField();

    /**
     * 被关联远程调用对象的Class对象。
     *
     * @return 被关联远程调用对象的Class对象。
     */
    Class<?> relationClientClass();


    String relationMethod();

}
